Модуль community.postgresql.postgresql_table — создание, удаление или изменение таблицы PostgreSQL
Примечание
Этот модуль входит в коллекцию community.postgresql (версия 4.2.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.postgresql. Для использования этого модуля требуются дополнительные компоненты; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.postgresql.postgresql_table.
Краткое описание
- Позволяет создавать, удалять и очищать таблицу, а также изменять некоторые ее атрибуты.
Требования
На узле, выполняющем этот модуль, необходимы следующие компоненты.
- psycopg2 >= 2.5.1
Параметры
Параметр | Комментарии |
|---|---|
ca_cert псевдонимы: ssl_rootcert string | Указывает имя файла, содержащего сертификат(ы) центра сертификации (CA) SSL. Если файл существует, будет проверено, что сертификат сервера подписан одним из этих центров. |
cascade boolean | Автоматически удалять объекты, зависящие от таблицы (например, представления). Используется только с state=absent. Варианты:
|
columns list / элементы=string | Необходимые столбцы. |
connect_params dictionary добавлено в community.postgresql 2.3.0 | Дополнительные параметры, передаваемые в libpg. Эти параметры имеют приоритет. По умолчанию: |
including string | Ключевые слова, используемые с параметром like: DEFAULTS, CONSTRAINTS, INDEXES, STORAGE, COMMENTS или ALL. Необходимо указать like. Несовместим с параметрами columns, rename и truncate. |
like string | Создать таблицу по образцу другой таблицы (с аналогичной DDL). Несовместим с параметрами columns, rename и truncate. |
login_db псевдонимы: db string | Имя базы данных, к которой нужно подключиться и в которой будет создана таблица. Псевдоним По умолчанию: |
login_host псевдонимы: host string | Узел, на котором работает база данных. При проблемах с подключением с использованием По умолчанию: |
login_password string | Пароль, который модуль должен использовать для установки сеанса PostgreSQL. По умолчанию: |
login_port псевдонимы: port integer | Порт базы данных для подключения. Псевдоним По умолчанию: |
login_unix_socket псевдонимы: unix_socket string | Путь к доменному сокету Unix для локальных подключений. По умолчанию: |
login_user псевдонимы: login string | Имя пользователя, которое модуль должен использовать для установки сеанса PostgreSQL. По умолчанию: |
owner string | Задать владельца таблицы. |
rename string | УСТАРЕЛО (см. обсуждение). Этот параметр будет удален в версии 5.0.0. Чтобы переименовать таблицу, используйте модуль community.postgresql.postgresql_query. Новое имя таблицы. Несовместим с параметрами tablespace, owner, unlogged, like, including, columns, truncate и storage_params. |
session_role string | Переключиться на session_role после подключения. Указанный session_role должен быть ролью, в которую входит текущий login_user. Проверка разрешений для команд SQL выполняется так, как если бы изначально для входа использовалась роль session_role. |
ssl_cert path добавлено в community.postgresql 2.4.0 | Указывает имя файла клиентского сертификата SSL. |
ssl_key path добавлено в community.postgresql 2.4.0 | Указывает путь к закрытому ключу, используемому для клиентского сертификата. |
ssl_mode string | Определяет, будет ли согласовываться с сервером защищенное SSL-соединение TCP/IP и какой приоритет ему будет назначен. Дополнительные сведения о режимах см. на странице https://www.postgresql.org/docs/current/static/libpq-ssl.html. Значение по умолчанию Варианты:
|
state string | Состояние таблицы. Параметр state=absent несовместим с параметрами tablespace, owner, unlogged, like, including, columns, truncate, storage_params и rename. Варианты:
|
storage_params list / элементы=string | Параметры хранения, например fillfactor, autovacuum_vacuum_treshold и т. д. Несовместим с параметрами rename и truncate. |
table псевдонимы: name string / обязательный | Имя таблицы. |
tablespace string | Задать табличное пространство для таблицы. |
truncate boolean | Очистить таблицу. Несовместим с параметрами tablespace, owner, unlogged, like, including, columns, rename и storage_params. Варианты:
|
trust_input boolean добавлено в community.postgresql 0.2.0 | Если Использовать Варианты:
|
unlogged boolean | Создать нежурналируемую таблицу. Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Модуль может работать в режиме check_mode и возвращать прогноз изменения состояния, не изменяя целевой узел. |
Примечания
Примечание
- Если не передать параметр db, таблицы будут созданы в базе данных с именем postgres.
- PostgreSQL позволяет создавать таблицы без столбцов, поэтому параметр columns необязателен.
- Нежурналируемые таблицы доступны начиная с версии сервера PostgreSQL 9.1.
- Если таблица уже существует и указаны столбцы, они будут проигнорированы. Столбцы существующей таблицы изменить нельзя.
- По умолчанию предполагается, что вы входите в систему под учетной записью
postgresна узле или переключаетесь на нее с помощью sudo. - Чтобы избежать ошибки «Peer authentication failed for user postgres», используйте пользователя postgres в качестве become_user.
- Этот модуль использует
psycopg— адаптер базы данных PostgreSQL для Python. Перед использованием модуля убедитесь, что на узле установленpsycopg2 >= 2.5.1илиpsycopg3 >= 3.1.8. - Если удаленный узел является сервером PostgreSQL (что используется по умолчанию), PostgreSQL также должен быть установлен на удаленном узле.
- Для систем на основе Ubuntu установите на удаленный узел пакеты
postgresql,libpq-devиpython3-psycopg2перед использованием этого модуля.
См. также
См. также
- community.postgresql.postgresql_sequence
-
Создание, удаление или изменение последовательности PostgreSQL.
- community.postgresql.postgresql_idx
-
Создание или удаление индексов в базе данных PostgreSQL.
- community.postgresql.postgresql_info
-
Сбор сведений о серверах PostgreSQL.
- community.postgresql.postgresql_tablespace
-
Добавление или удаление табличных пространств PostgreSQL на удаленных узлах.
- community.postgresql.postgresql_owner
-
Изменение владельца объекта базы данных PostgreSQL.
- community.postgresql.postgresql_privs
-
Предоставление или отзыв привилегий для объектов базы данных PostgreSQL.
- community.postgresql.postgresql_copy
-
Копирование данных между файлом/программой и таблицей PostgreSQL.
- Справочник по CREATE TABLE
-
Полная справочная документация по команде CREATE TABLE.
- Справочник по ALTER TABLE
-
Полная справочная документация по команде ALTER TABLE.
- Справочник по DROP TABLE
-
Полная справочная документация по команде DROP TABLE.
- Типы данных PostgreSQL
-
Полная справочная документация по типам данных PostgreSQL.
Примеры
- name: Create tbl2 in the acme database with the DDL like tbl1 with testuser as an owner
community.postgresql.postgresql_table:
login_db: acme
name: tbl2
like: tbl1
owner: testuser
- name: Create tbl2 in the acme database and tablespace ssd with the DDL like tbl1 including comments and indexes
community.postgresql.postgresql_table:
login_db: acme
table: tbl2
like: tbl1
including: comments, indexes
tablespace: ssd
- name: Create test_table with several columns in ssd tablespace with fillfactor=10 and autovacuum_analyze_threshold=1
community.postgresql.postgresql_table:
name: test_table
columns:
- id bigserial primary key
- num bigint
- stories text
tablespace: ssd
storage_params:
- fillfactor=10
- autovacuum_analyze_threshold=1
- name: Create an unlogged table in schema acme
community.postgresql.postgresql_table:
name: acme.useless_data
columns: waste_id int
unlogged: true
- name: Set owner to someuser
community.postgresql.postgresql_table:
name: foo
owner: someuser
- name: Change tablespace of foo table to new_tablespace and set owner to new_user
community.postgresql.postgresql_table:
name: foo
tablespace: new_tablespace
owner: new_user
- name: Truncate table foo
community.postgresql.postgresql_table:
name: foo
truncate: true
- name: Drop table foo from schema acme
community.postgresql.postgresql_table:
name: acme.foo
state: absent
- name: Drop table bar cascade
community.postgresql.postgresql_table:
name: bar
state: absent
cascade: true
- name: Create table with composite primary key
community.postgresql.postgresql_table:
name: composite_pk_table
columns:
- id bigserial
- num bigint
- primary key (id, num)
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
owner string | Владелец таблицы. Возвращается: при успешном выполнении Пример: |
queries string | Список выполненных запросов. Возвращается: при успешном выполнении Пример: |
state string | Состояние таблицы. Возвращается: при успешном выполнении Пример: |
storage_params list / элементы=string | Параметры хранения. Возвращается: при успешном выполнении Пример: |
table string | Имя таблицы. Возвращается: при успешном выполнении Пример: |
tablespace string | Табличное пространство. Возвращается: при успешном выполнении Пример: |
Ссылки на коллекцию
© 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_table_module.html