Spec-Zone.ru › Ansible 2.9

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

Новая версия с 2.9.

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

Описание

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

Требования

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

  • psycopg2

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
ca_cert
строка
Указывает имя файла, содержащего сертификат(ы) центра сертификации (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.

Примечания

Примечание

  • Поддерживает PostgreSQL версии 9.4+.
  • Команда COPY разрешена только суперпользователям базы данных.
  • Если check_mode=yes, мы просто проверяем наличие таблиц src/dst и возвращаем запрос COPY, который фактически не был выполнен.
  • Если i(check_mode=yes) и источник был передан как SQL, модуль выполнит его и вернёт транзакцию, но обратите внимание, что это может повлиять на производительность базы данных (например, если SQL собирает много данных).
  • Аутентификация по умолчанию предполагает, что вы либо входите как, либо используете sudo для учетной записи postgres на хосте.
  • Чтобы избежать ошибки «Ошибка проверки подлинности участника для пользователя 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
  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
  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
  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
  postgresql_copy:
    src: acme
    copy_to: /tmp/data.txt

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

- name: Copy CSV data from my_table to gzip
  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
  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


Статус

  • Для этого модуля не гарантируется обратная совместимость интерфейса. [превью]
  • Этот модуль поддерживается сообществом Ansible. [сообщество]

Авторы

  • Андрей Клычков (@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.9/modules/postgresql_copy_module.html

Spec-Zone.ru

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