Spec-Zone.ru › Ansible 2.11

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

Примечание

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

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

Для использования в книге задач укажите: community.postgresql.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
строка
    Варианты:
  • allow
  • disable
  • prefer ←
  • require
  • verify-ca
  • verify-full
Определяет, будет ли и с какой приоритетностью устанавливаться защищенное SSL TCP/IP-соединение с сервером.
См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах.
Значение по умолчанию prefer соответствует значению по умолчанию libpq.
trust_input
логическое значение
добавлено в 0.2.0 community.postgresql
    Варианты:
  • нет
  • да ←
Если no, проверять, являются ли значения параметров потенциально опасными.
Использование no имеет смысл только в случае возможности SQL-инъекций.

Примечания

Примечание

  • Поддерживает PostgreSQL версии 9.4 и выше.
  • Команда COPY разрешена только пользователям базы данных с правами суперпользователя.
  • Если check_mode=yes, мы просто проверяем доступность таблицы src/dst и возвращаем запрос COPY, который фактически не был выполнен.
  • Если (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
  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: 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.postgresql.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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/postgresql/postgresql_copy_module.html

Spec-Zone.ru

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