postgresql_table – Создание, удаление или изменение таблицы PostgreSQL
Новая версия с 2.8.
Краткое описание
- Позволяет создавать, удалять, переименовывать, обнулять таблицу или изменять некоторые ее атрибуты https://www.postgresql.org/docs/current/sql-createtable.html.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификаты центра сертификации (CA). Если файл существует, сертификат сервера будет проверен на соответствие одному из этих сертификатов. алиасы: ssl_rootcert | |
| 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. |
| unlogged логическое значение |
| Создать нелогичную таблицу. |
Примечания
Примечание
- Если вы не передаете параметр db, таблицы будут созданы в базе данных под названием postgres.
- PostgreSQL позволяет создавать таблицы без столбцов, поэтому параметр columns необязателен.
- По умолчанию аутентификация предполагает, что вы заходите в систему или используете sudo с учетной записью postgres на хосте.
- Чтобы избежать ошибки «Ошибка проверки подлинности Peer для пользователя postgres», используйте пользователя postgres в качестве become_user.
- Нелогичные таблицы доступны с версии PostgreSQL сервера 9.1 https://www.postgresql.org/docs/9.1/sql-createtable.html.
- Этот модуль использует psycopg2, адаптер Python для базы данных PostgreSQL. Необходимо убедиться, что psycopg2 установлен на хосте перед использованием этого модуля.
- Если удаленный хост является сервером PostgreSQL (что является стандартным случаем), то PostgreSQL также должен быть установлен на удаленном хосте. Для систем на базе Ubuntu установите пакеты postgresql, libpq-dev и python-psycopg2 на удаленном хосте перед использованием этого модуля.
- По умолчанию аутентификация предполагает, что вы заходите в систему или используете sudo с учетной записью
postgresна хосте. - Этот модуль использует psycopg2, адаптер Python для базы данных PostgreSQL. Необходимо убедиться, что psycopg2 установлен на хосте перед использованием этого модуля. Если удаленный хост является сервером PostgreSQL (что является стандартным случаем), то PostgreSQL также должен быть установлен на удаленном хосте. Для систем на базе Ubuntu установите пакеты
postgresql,libpq-dev, иpython-psycopg2на удаленном хосте перед использованием этого модуля. - Параметр ca_cert требует как минимум версию Postgres 8.4 и psycopg2 версии 2.4.3.
Примеры
- name: Create tbl2 in the acme database with the DDL like tbl1 with testuser as an owner
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
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
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
postgresql_table:
name: acme.useless_data
columns: waste_id int
unlogged: true
- name: Rename table foo to bar
postgresql_table:
table: foo
rename: bar
- name: Rename table foo from schema acme to bar
postgresql_table:
name: acme.foo
rename: bar
- name: Set owner to someuser
postgresql_table:
name: foo
owner: someuser
- name: Change tablespace of foo table to new_tablespace and set owner to new_user
postgresql_table:
name: foo
tablespace: new_tablespace
owner: new_user
- name: Truncate table foo
postgresql_table:
name: foo
truncate: yes
- name: Drop table foo from schema acme
postgresql_table:
name: acme.foo
state: absent
Значения возврата
Общие значения возврата документированы здесь, следующие являются полями, уникальными для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| owner строка | всегда | Владелец таблицы. Пример: postgres |
| queries строка | всегда | Список выполненных запросов. Пример: ['CREATE TABLE "test_table" (id bigint)'] |
| state строка | всегда | Состояние таблицы. Пример: present |
| storage_params список | всегда | Параметры хранения. Пример: ['fillfactor=100', 'autovacuum_analyze_threshold=1'] |
| table строка | всегда | Имя таблицы. Пример: foo |
| tablespace строка | всегда | Таблица пространств. Пример: ssd_tablespace |
Статус
- Данный модуль не гарантирует обратную совместимость. [превью]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- Андрей Клычкова (@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.8/modules/postgresql_table_module.html