Spec-Zone.ru › Ansible 2.10

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

Примечание

Этот плагин входит в коллекцию community.general (версия 1.3.2).

Для его установки используйте: ansible-galaxy collection install community.general.

Чтобы использовать его в playbook, укажите: community.general.postgresql_copy.

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

Обзор

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

Требования

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

  • psycopg2

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
ca_cert
строка
Указывает имя файла, содержащего сертификат(ы) центра сертификации SSL (CA).
Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров сертификации.

Псевдонимы: ssl_rootcert
columns
список / элементы=строка
Список имен столбцов для таблицы src/dst для COPY FROM/TO.

Псевдонимы: column
copy_from
путь
Копирование данных из файла в таблицу (добавление данных к уже имеющимся в таблице).
Взаимоисключающие с copy_to и src.

Псевдонимы: from
copy_to
путь
Копирование содержимого таблицы в файл.
Также можно копировать результаты запроса SELECT.
Взаимоисключающие с copy_from и dst.

Псевдонимы: to
db
строка
Имя базы данных для подключения.

Псевдонимы: login_db
dst
строка
Копирование данных в dst=tablename из copy_from=/path/to/data.file.
Используется только с copy_from.

Псевдонимы: destination
login_host
строка
Хост, на котором работает база данных.
login_password
строка
Пароль для аутентификации.
login_unix_socket
строка
Путь к Unix-сокету для локальных подключений.
login_user
строка
По умолчанию:
"postgres"
Имя пользователя для аутентификации.
options
словарь
Параметры команды COPY.
Полный список доступных параметров см. на https://www.postgresql.org/docs/current/sql-copy.html.
port
целое число
По умолчанию:
5432
Порт базы данных для подключения.

Псевдонимы: login_port
program
логическое значение
    Варианты:
  • нет ←
  • да
Пометить src/dst как программу. Данные будут копироваться в/из программы.
См. раздел Примеры и описание аргумента PROGRAM на https://www.postgresql.org/docs/current/sql-copy.html.
session_role
строка
Переключение на session_role после подключения. Указанный session_role должен быть ролью, членом которой является текущий login_user.
Проверка разрешений для SQL-команд выполняется так, как будто session_role был тем, кто первоначально вошел в систему.
src
строка
Копирование данных из copy_from в src=tablename.
Используется только с copy_to.

Псевдонимы: source
ssl_mode
строка
    Варианты:
  • разрешить
  • отключить
  • предпочитать ←
  • требовать
  • проверить-ca
  • полная-проверка
Определяет, будет ли и с какой приоритетностью устанавливаться защищенное SSL-TCP/IP-соединение с сервером.
См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах.
Значение по умолчанию prefer соответствует значению по умолчанию libpq.
trust_input
логическое значение
добавлено в 0.2.0 community.general
    Варианты:
  • нет
  • да ←
Если no, проверять, являются ли значения параметров потенциально опасными.
Использование no имеет смысл только в случае возможности SQL-инъекций.

Примечания

Примечание

  • Поддерживает версии PostgreSQL 9.4 и выше.
  • Команда COPY разрешена только суперпользователям базы данных.
  • Если check_mode=yes, мы просто проверяем доступность таблиц src/dst и возвращаем запрос COPY, который фактически не был выполнен.
  • Если check_mode=yes и источник задан как SQL, модуль выполнит его и откатит транзакцию, но обратите внимание, что это может повлиять на производительность базы данных (например, если SQL собирает много данных).
  • Аутентификация по умолчанию предполагает, что вы заходите под учетной записью postgres на хосте или используете sudo.
  • Чтобы избежать ошибки «Ошибка проверки подлинности клиента для пользователя postgres», используйте пользователя postgres в качестве become_user.
  • Этот модуль использует psycopg2, адаптер Python для базы данных PostgreSQL. Вы должны убедиться, что psycopg2 установлен на хосте перед использованием этого модуля.
  • Если удаленный хост является сервером PostgreSQL (что является случаем по умолчанию), то PostgreSQL также должен быть установлен на удаленном хосте.
  • Для систем на основе Ubuntu установите пакеты postgresql, libpq-dev и python-psycopg2 на удаленном хосте перед использованием этого модуля.
  • Для параметра ca_cert требуется как минимум версия Postgres 8.4 и версия psycopg2 2.4.3.

См. также

См. также

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

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

Примеры

- name: Copy text TAB-separated data from file /tmp/data.txt to acme table
  community.general.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.general.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.general.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.general.postgresql_copy:
    src: acme
    copy_to: /tmp/data.txt

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

- name: Copy CSV data from my_table to gzip
  community.general.postgresql_copy:
    src: my_table
    copy_to: 'gzip > /tmp/data.csv.gz'
    program: yes
    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.general.postgresql_copy:
    src: bar
    columns:
    - id
    - name
    copy_to: /tmp/data.csv
    options:
      delimiter: '|'
      null: 'N'

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

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

Ключ Возвращаемое значение Описание
dst
строка
всегда
Место назначения данных.

Пример:
/tmp/data.csv
queries
строка
всегда
Список выполненных запросов.

Пример:
["COPY test_table FROM '/tmp/data_file.txt' (FORMAT csv, DELIMITER ',', NULL 'NULL')"]
src
строка
всегда
Источник данных.

Пример:
mytable


Авторы

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

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

Spec-Zone.ru

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