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 строка | Хост, на котором выполняется база данных. Если у вас есть проблемы с подключением при использовании По умолчанию: |
login_password строка | Пароль, который должен использовать этот модуль для установления сеанса PostgreSQL. По умолчанию: |
login_unix_socket псевдонимы: unix_socket строка | Путь к Unix-сокету для локальных подключений. По умолчанию: |
login_user псевдонимы: login строка | Имя пользователя, которое должен использовать этот модуль для установления сеанса PostgreSQL. По умолчанию: |
options словарь | Параметры команды COPY. См. полный список доступных параметров https://www.postgresql.org/docs/current/sql-copy.html. |
port псевдонимы: 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 псевдонимы: 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. По умолчанию Варианты:
|
trust_input boolean added in community.postgresql 0.2.0 | Если Использование Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
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 | Место назначения данных. Возвращаемое значение: успех Пример: |
queries string | Список выполненных запросов. Возвращаемое значение: успех Пример: |
src string | Источник данных. Возвращаемое значение: успех Пример: |
Ссылки на коллекции
© 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