Модуль community.postgresql.postgresql_copy — копирование данных между файлом/программой и таблицей PostgreSQL
Примечание
Этот модуль входит в коллекцию community.postgresql (версия 4.2.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.postgresql. Для использования этого модуля необходимы дополнительные требования; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.postgresql.postgresql_copy.
Краткое описание
- Копирование данных между файлом/программой и таблицей PostgreSQL.
Требования
На узле, выполняющем этот модуль, должны быть установлены следующие компоненты.
- psycopg2 >= 2.5.1
Параметры
Параметр | Комментарии |
|---|---|
ca_cert псевдонимы: ssl_rootcert строка | Указывает имя файла, содержащего сертификат(ы) центра сертификации (CA) SSL. Если файл существует, будет проверено, что сертификат сервера подписан одним из этих центров сертификации. |
columns псевдонимы: column список / элементы=строка | Список имен столбцов исходной/целевой таблицы для COPY FROM/TO. |
connect_params словарь добавлено в community.postgresql 2.3.0 | Любые дополнительные параметры, передаваемые в libpg. Эти параметры имеют более высокий приоритет. По умолчанию: |
copy_from псевдонимы: from путь | Копировать данные из файла в таблицу (добавляя их к уже имеющимся в таблице данным). Взаимоисключающий параметр с copy_to и src. |
copy_to псевдонимы: to путь | Копировать содержимое таблицы в файл. Также можно копировать результаты запроса SELECT. Взаимоисключающий параметр с copy_from и dst. |
dst псевдонимы: destination строка | Копировать данные в dst=tablename из copy_from=/path/to/data.file. Используется только с copy_from. |
login_db псевдонимы: db строка | Имя базы данных для подключения. Использование псевдонима |
login_host псевдонимы: host строка | Узел, на котором работает база данных. Если при использовании По умолчанию: |
login_password строка | Пароль, который модуль должен использовать для установления сеанса PostgreSQL. По умолчанию: |
login_port псевдонимы: port целое число | Порт базы данных для подключения. Использование псевдонима По умолчанию: |
login_unix_socket псевдонимы: unix_socket строка | Путь к доменному сокету Unix для локальных подключений. По умолчанию: |
login_user псевдонимы: login строка | Имя пользователя, которое модуль должен использовать для установления сеанса PostgreSQL. По умолчанию: |
options словарь | Параметры команды COPY. Полный список доступных параметров см. на странице https://www.postgresql.org/docs/current/sql-copy.html. |
program логическое значение | Указывает, что src/dst является программой. Данные будут копироваться из программы или в нее. См. примеры в разделе Examples и описание аргумента 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 путь добавлено в community.postgresql 2.4.0 | Указывает расположение секретного ключа, используемого для клиентского сертификата. |
ssl_mode строка | Определяет, будет ли устанавливаться защищенное SSL TCP/IP-подключение к серверу и с каким приоритетом. Дополнительную информацию о режимах см. на странице https://www.postgresql.org/docs/current/static/libpq-ssl.html. Значение по умолчанию Варианты:
|
trust_input логическое значение добавлено в community.postgresql 0.2.0 | Если Использовать Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: частичная Если check_mode=true, проверяется только доступность исходной/целевой таблицы и возвращается запрос COPY, который фактически не выполнялся. Если i(check_mode=true) и источник передан в виде SQL, модуль выполнит его и откатит транзакцию. Однако следует учитывать, что это может повлиять на производительность базы данных (например, если SQL-запрос собирает много данных). | Модуль можно запускать в режиме check_mode: он вернет прогноз статуса изменений, не изменяя целевой объект. |
Примечания
Примечание
- Поддерживается PostgreSQL версии 9.4 и выше.
- Команда COPY разрешена только суперпользователям базы данных.
- По умолчанию предполагается, что вы входите в систему как учетная запись
postgresна узле или переключаетесь на нее с помощью sudo. - Чтобы избежать ошибки «Peer authentication failed for user 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 строка | Место назначения данных. Возвращается: при успешном выполнении Пример: |
queries строка | Список выполненных запросов. Возвращается: при успешном выполнении Пример: |
src строка | Источник данных. Возвращается: при успешном выполнении Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/postgresql/postgresql_copy_module.html