community.general.postgresql_table – Создание, удаление или изменение таблицы PostgreSQL
Примечание
Этот плагин является частью коллекции community.general (версия 1.3.2).
Для его установки используйте: ansible-galaxy collection install community.general.
Чтобы использовать его в плейбуке, укажите: community.general.postgresql_table.
Описание
- Позволяет создавать, удалять, переименовывать, обнулять таблицу или изменять некоторые ее атрибуты.
Требования
Ниже перечислены требования к хосту, на котором выполняется данный модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификат(ы) центра сертификации SSL (CA). Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров. Псевдонимы: ssl_rootcert | |
| cascade булево |
| Автоматически удаляет объекты, зависящие от таблицы (например, представления). Используется только с state=absent. |
| columns список / элементы=строка | Необходимые столбцы. | |
| db строка | Имя базы данных для подключения и создания таблицы. Псевдонимы: login_db | |
| including строка | Ключевые слова, используемые с параметром like, могут быть DEFAULTS, CONSTRAINTS, INDEXES, STORAGE, COMMENTS или ALL. Требуется указание параметра like. Взаимоисключительно с columns, rename и truncate. | |
| like строка | Создать таблицу, аналогичную другой таблице (с похожим DDL). Взаимоисключительно с columns, rename и truncate. | |
| login_host строка | Хост, на котором работает база данных. | |
| login_password строка | Пароль для аутентификации. | |
| login_unix_socket строка | Путь к сокету Unix доменной области для локальных подключений. | |
| login_user строка | По умолчанию: "postgres" | Имя пользователя для аутентификации. |
| owner строка | Установить владельца таблицы. | |
| port целое число | По умолчанию: 5432 | Порт базы данных для подключения. Псевдонимы: login_port |
| rename строка | Новое имя таблицы. Взаимоисключительно с tablespace, owner, unlogged, like, including, columns, truncate и storage_params. | |
| session_role строка | Переключиться на session_role после подключения. Указанный session_role должен быть ролью, членом которой является текущий login_user. Проверка разрешений для команд SQL выполняется так, как будто session_role был тем, кто изначально вошел в систему. | |
| ssl_mode строка |
| Определяет, будет ли и с каким приоритетом устанавливаться защищенное SSL TCP/IP-соединение с сервером. См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах. Значение по умолчанию prefer соответствует значению по умолчанию libpq. |
| state строка |
| Состояние таблицы. state=absent взаимоисключительно с tablespace, owner, unlogged, like, including, columns, truncate, storage_params и rename. |
| storage_params список / элементы=строка | Параметры хранения, такие как fillfactor, autovacuum_vacuum_treshold и т.д. Взаимоисключительно с rename и truncate. | |
| table строка / обязательный | Имя таблицы. Псевдонимы: name | |
| tablespace строка | Установить табличное пространство для таблицы. | |
| truncate булево |
| Обнулить таблицу. Взаимоисключительно с tablespace, owner, unlogged, like, including, columns, rename и storage_params. |
| trust_input булево добавлен в 0.2.0 community.general |
| Если no, проверять, являются ли значения параметров потенциально опасными.Использование no целесообразно только в случае возможности SQL-инъекций. |
| unlogged булево |
| Создать нелогичную таблицу. |
Примечания
Примечание
- Если параметр db не указан, таблицы будут созданы в базе данных с именем postgres.
- PostgreSQL позволяет создавать таблицы без столбцов, поэтому параметр columns является необязательным.
- Нелогичные таблицы доступны с версии PostgreSQL сервера 9.1.
- Аутентификация по умолчанию предполагает, что вы входите в систему как или подключаетесь к учетной записи
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.
См. также
См. также
- community.general.postgresql_sequence
-
Официальная документация по модулю community.general.postgresql_sequence.
- community.general.postgresql_idx
-
Официальная документация по модулю community.general.postgresql_idx.
- community.general.postgresql_info
-
Официальная документация по модулю community.general.postgresql_info.
- community.general.postgresql_tablespace
-
Официальная документация по модулю community.general.postgresql_tablespace.
- community.general.postgresql_owner
-
Официальная документация по модулю community.general.postgresql_owner.
- community.general.postgresql_privs
-
Официальная документация по модулю community.general.postgresql_privs.
- community.general.postgresql_copy
-
Официальная документация по модулю community.general.postgresql_copy.
- Справочник 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.general.postgresql_table:
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.general.postgresql_table:
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.general.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.general.postgresql_table:
name: acme.useless_data
columns: waste_id int
unlogged: true
- name: Rename table foo to bar
community.general.postgresql_table:
table: foo
rename: bar
- name: Rename table foo from schema acme to bar
community.general.postgresql_table:
name: acme.foo
rename: bar
- name: Set owner to someuser
community.general.postgresql_table:
name: foo
owner: someuser
- name: Change tablespace of foo table to new_tablespace and set owner to new_user
community.general.postgresql_table:
name: foo
tablespace: new_tablespace
owner: new_user
- name: Truncate table foo
community.general.postgresql_table:
name: foo
truncate: yes
- name: Drop table foo from schema acme
community.general.postgresql_table:
name: acme.foo
state: absent
- name: Drop table bar cascade
community.general.postgresql_table:
name: bar
state: absent
cascade: yes
Возвращаемые значения
Общие возвращаемые значения документированы здесь, следующие — поля, уникальные для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| owner строка | всегда | Владелец таблицы. Пример: postgres |
| queries строка | всегда | Список выполненных запросов. Пример: ['CREATE TABLE "test_table" (id bigint)'] |
| state строка | всегда | Состояние таблицы. Пример: present |
| storage_params список / элементы=строка | всегда | Параметры хранения. Пример: ['fillfactor=100', 'autovacuum_analyze_threshold=1'] |
| table строка | всегда | Имя таблицы. Пример: foo |
| tablespace строка | всегда | Таблица хранения. Пример: ssd_tablespace |
Авторы
- Андрей Клычков (@Andersson007)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/general/postgresql_table_module.html