Spec-Zone.ru › Ansible

Модуль 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

строка

Имя базы данных для подключения.

Использование псевдонима db устарело; он будет удален в версии 5.0.0.

login_host

псевдонимы: host

строка

Узел, на котором работает база данных.

Если при использовании localhost возникают проблемы с подключением, попробуйте вместо этого использовать 127.0.0.1.

По умолчанию: ""

login_password

строка

Пароль, который модуль должен использовать для установления сеанса PostgreSQL.

По умолчанию: ""

login_port

псевдонимы: port

целое число

Порт базы данных для подключения.

Использование псевдонима port устарело; он будет удален в следующем основном выпуске. Вместо него используйте login_port.

По умолчанию: 5432

login_unix_socket

псевдонимы: unix_socket

строка

Путь к доменному сокету Unix для локальных подключений.

По умолчанию: ""

login_user

псевдонимы: login

строка

Имя пользователя, которое модуль должен использовать для установления сеанса PostgreSQL.

По умолчанию: "postgres"

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.

Варианты:

  • false ← (по умолчанию)
  • true

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.

Значение по умолчанию prefer соответствует значению по умолчанию libpq.

Варианты:

  • "allow"
  • "disable"
  • "prefer" ← (по умолчанию)
  • "require"
  • "verify-ca"
  • "verify-full"

trust_input

логическое значение

добавлено в community.postgresql 0.2.0

Если false, проверяет, не являются ли значения параметров потенциально опасными.

Использовать false имеет смысл только в том случае, если возможны SQL-инъекции.

Варианты:

  • false
  • true ← (по умолчанию)

Атрибуты

Атрибут

Поддержка

Описание

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

строка

Место назначения данных.

Возвращается: при успешном выполнении

Пример: "/tmp/data.csv"

queries

строка

Список выполненных запросов.

Возвращается: при успешном выполнении

Пример: "[\"COPY test_table FROM '/tmp/data_file.txt' (FORMAT csv, DELIMITER ',', NULL 'NULL')\"]"

src

строка

Источник данных.

Возвращается: при успешном выполнении

Пример: "mytable"

Авторы

  • Andrew Klychkov (@Andersson007)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Сообщить о проблеме
  • Связь

© 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

Spec-Zone.ru

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