Spec-Zone.ru › Ansible

community.postgresql.postgresql_copy модуль — Копирование данных между файлом/программой и таблицей PostgreSQL

Примечание

Этот модуль является частью коллекции community.postgresql (версия 3.6.1).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.postgresql. Для использования этого модуля необходимы дополнительные требования, см. Требования для подробностей.

Для использования в playbook укажите: community.postgresql.postgresql_copy.

  • Обзор
  • Требования
  • Параметры
  • Атрибуты
  • Примечания
  • См. также
  • Примеры
  • Значения возврата

Обзор

  • Копирование данных между файлом/программой и таблицей PostgreSQL.

Требования

Ниже приведены требования, необходимые на хосте, который выполняет этот модуль.

  • psycopg2 >= 2.5.1

Параметры

Параметр

Комментарии

ca_cert

псевдонимы: ssl_rootcert

строка

Указывает имя файла, содержащего сертификат(ы) SSL-центра сертификации (CA).

Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров.

columns

псевдонимы: column

список / элементы=строка

Список имён столбцов для таблицы src/dst для COPY FROM/TO.

connect_params

словарь

добавлен в community.postgresql 2.3.0

Дополнительные параметры для передачи в libpg.

Эти параметры имеют приоритет.

По умолчанию: {}

copy_from

псевдонимы: from

путь

Копирование данных из файла в таблицу (добавление данных к уже имеющимся в таблице).

Взаимоисключающие с copy_to и src.

copy_to

псевдонимы: to

путь

Копирование содержимого таблицы в файл.

Также можно скопировать результаты запроса SELECT.

Взаимоисключающие с copy_from и dst.

db

псевдонимы: login_db

строка

Имя базы данных для подключения.

dst

псевдонимы: destination

строка

Копирование данных в dst=tablename из copy_from=/path/to/data.file.

Используется только с copy_from.

login_host

псевдонимы: host

строка

Хост, на котором выполняется база данных.

Если у вас есть проблемы с подключением при использовании localhost, попробуйте использовать 127.0.0.1 вместо.

По умолчанию: ""

login_password

строка

Пароль, который должен использовать этот модуль для установления сеанса PostgreSQL.

По умолчанию: ""

login_unix_socket

псевдонимы: unix_socket

строка

Путь к Unix-сокету для локальных подключений.

По умолчанию: ""

login_user

псевдонимы: login

строка

Имя пользователя, которое должен использовать этот модуль для установления сеанса PostgreSQL.

По умолчанию: "postgres"

options

словарь

Параметры команды COPY.

См. полный список доступных параметров https://www.postgresql.org/docs/current/sql-copy.html.

port

псевдонимы: login_port

целое число

Порт базы данных для подключения.

По умолчанию: 5432

program

логическое

Пометить src/dst как программу. Данные будут копироваться в/из программы.

См. блок Примеры и описание параметра PROGRAM https://www.postgresql.org/docs/current/sql-copy.html.

Варианты:

  • false ← (по умолчанию)
  • true

session_role

строка

Переключение на session_role после подключения. Указанная session_role должна быть ролью, членом которой является текущий login_user.

Проверка разрешений для команд SQL выполняется так, как будто session_role была той, которая первоначально вошла в систему.

src

псевдонимы: source

строка

Копирование данных из copy_from в src=tablename.

Используется только с copy_to.

ssl_cert

путь

добавлен в community.postgresql 2.4.0

Указывает имя файла клиентского SSL-сертификата.

ssl_key

path

added in community.postgresql 2.4.0

Указывает расположение секретного ключа, используемого для сертификата клиента.

ssl_mode

string

Определяет, будет ли и с каким приоритетом устанавливаться безопасное SSL TCP/IP-соединение с сервером.

Для получения дополнительной информации о режимах см. https://www.postgresql.org/docs/current/static/libpq-ssl.html.

По умолчанию prefer соответствует значениям по умолчанию libpq.

Варианты:

  • "allow"
  • "disable"
  • "prefer" ← (по умолчанию)
  • "require"
  • "verify-ca"
  • "verify-full"

trust_input

boolean

added in community.postgresql 0.2.0

Если false, проверяется, являются ли значения параметров потенциально опасными.

Использование false имеет смысл только при возможности SQL-инъекций.

Варианты:

  • false
  • true ← (по умолчанию)

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: частичная

Если check_mode=true, мы просто проверяем доступность таблиц src/dst и возвращаем запрос COPY, который фактически не был выполнен.

Если (check_mode=true) и источник передан как SQL, модуль выполнит его и откатит транзакцию, но обратите внимание, что это может повлиять на производительность базы данных (например, если SQL собирает много данных).

Может работать в режиме check_mode и возвращать прогноз изменений состояния без изменения целевого объекта.

Примечания

Примечание

  • Поддерживает PostgreSQL версии 9.4 и выше.
  • Команда COPY разрешена только для суперпользователей базы данных.
  • По умолчанию аутентификация предполагает, что вы вошли в систему или используете sudo как postgres учетная запись на хосте.
  • Чтобы избежать ошибки «Ошибка аутентификации клиента для пользователя postgres», используйте пользователя postgres в качестве become_user.
  • Этот модуль использует psycopg, Python-адаптер PostgreSQL базы данных. Необходимо убедиться, что psycopg2 >= 2.5.1 или psycopg3 >= 3.1.8 установлен на хосте перед использованием этого модуля.
  • Если удалённый хост является сервером PostgreSQL (что является стандартным случаем), то PostgreSQL также должен быть установлен на удалённом хосте.
  • Для систем на основе Ubuntu установите пакеты postgresql, libpq-dev, и python3-psycopg2 на удалённом хосте перед использованием этого модуля.

См. также

См. также

Ссылка на команду COPY

Полное руководство по команде COPY.

Примеры

- name: Copy text TAB-separated data from file /tmp/data.txt to acme table
  community.postgresql.postgresql_copy:
    copy_from: /tmp/data.txt
    dst: acme

- name: Copy CSV (comma-separated) data from file /tmp/data.csv to columns id, name of table acme
  community.postgresql.postgresql_copy:
    copy_from: /tmp/data.csv
    dst: acme
    columns: id,name
    options:
      format: csv

- name: >
    Copy text vertical-bar-separated data from file /tmp/data.txt to bar table.
    The NULL values are specified as N
  community.postgresql.postgresql_copy:
    copy_from: /tmp/data.csv
    dst: bar
    options:
      delimiter: '|'
      null: 'N'

- name: Copy data from acme table to file /tmp/data.txt in text format, TAB-separated
  community.postgresql.postgresql_copy:
    src: acme
    copy_to: /tmp/data.txt

- name: Copy data from SELECT query to/tmp/data.csv in CSV format
  community.postgresql.postgresql_copy:
    src: 'SELECT * FROM acme'
    copy_to: /tmp/data.csv
    options:
      format: csv

- name: Copy CSV data from my_table to gzip
  community.postgresql.postgresql_copy:
    src: my_table
    copy_to: 'gzip > /tmp/data.csv.gz'
    program: true
    options:
      format: csv

- name: >
    Copy data from columns id, name of table bar to /tmp/data.txt.
    Output format is text, vertical-bar-separated, NULL as N
  community.postgresql.postgresql_copy:
    src: bar
    columns:
    - id
    - name
    copy_to: /tmp/data.csv
    options:
      delimiter: '|'
      null: 'N'

Возвращаемые значения

Общие значения, возвращаемые модулем, документированы здесь, следующие поля уникальны для данного модуля:

Ключ

Описание

dst

string

Место назначения данных.

Возвращаемое значение: успех

Пример: "/tmp/data.csv"

queries

string

Список выполненных запросов.

Возвращаемое значение: успех

Пример: "[\"COPY test_table FROM '/tmp/data_file.txt' (FORMAT csv, DELIMITER ',', NULL 'NULL')\"]"

src

string

Источник данных.

Возвращаемое значение: успех

Пример: "mytable"

Авторы

  • Андрей Клычкова (@Andersson007)

Ссылки на коллекции

  • Отслеживание проблем
  • Репозиторий (источники)
  • Сообщить об ошибке
  • Связь

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/postgresql/postgresql_copy_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API