postgresql_idx – Создание или удаление индексов из базы данных PostgreSQL
Новое в версии 2.8.
Обзор
- Создание или удаление индексов из базы данных PostgreSQL.
- Для получения дополнительной информации см. https://www.postgresql.org/docs/current/sql-createindex.html, https://www.postgresql.org/docs/current/sql-dropindex.html.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификат(ы) центра сертификации SSL (CA). Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров. псевдонимы: ssl_rootcert | |
| cascade логический тип |
| Автоматически удаляет объекты, зависящие от индекса, и, в свою очередь, все объекты, зависящие от этих объектов https://www.postgresql.org/docs/current/sql-dropindex.html. Используется только со значением state=absent. Несовместимо с concurrent=да
|
| columns список | Список столбцов индекса, которые должны быть покрыты индексом. Несовместимо со значением state=absent. псевдонимы: column | |
| concurrent логический тип |
| Включить или выключить режим одновременной обработки (CREATE / DROP INDEX CONCURRENTLY). Обратите внимание, если concurrent=нет, таблица будет заблокирована (ACCESS EXCLUSIVE) во время построения. Более подробную информацию о уровнях блокировок см. https://www.postgresql.org/docs/current/explicit-locking.html. Если процесс построения был прерван по какой-либо причине при concurrent=да, индекс становится недействительным. В этом случае он должен быть удалён и создан заново. Несовместимо с cascade=да. |
| cond строка | Условие индекса. Несовместимо со значением state=absent. | |
| db строка | Имя базы данных для подключения и создания/удаления индекса. псевдонимы: login_db | |
| idxname строка / обязательно | Имя индекса для создания или удаления. псевдонимы: name | |
| idxtype строка | Тип индекса (например, btree, gist, gin и т.д.). Несовместимо со значением state=absent. псевдонимы: type | |
| login_host строка | Хост, на котором запущена база данных. | |
| login_password строка | Пароль для аутентификации. | |
| login_unix_socket строка | Путь к сокету Unix доменного имени для локальных подключений. | |
| login_user строка | По умолчанию: "postgres" | Имя пользователя для аутентификации. |
| port целое число | По умолчанию: 5432 | Порт базы данных для подключения. псевдонимы: login_port |
| schema строка | Имя схемы базы данных, где будет создан индекс. | |
| 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=present подразумевает, что индекс будет создан, если он не существует.
state=absent подразумевает, что индекс будет удален, если он существует. |
| storage_params список | Параметры хранения, такие как fillfactor, vacuum_cleanup_index_scale_factor и т.д. Несовместимо со значением state=absent. | |
| table строка / обязательно | Таблица, на которой будет создан индекс. Несовместимо со значением state=absent. | |
| tablespace строка | Установить табличное пространство для индекса. Несовместимо со значением state=absent. |
Примечания
Примечание
- Процесс построения индекса может повлиять на производительность базы данных.
- Чтобы избежать блокировок таблиц в производственных базах данных, используйте concurrent=да (поведение по умолчанию).
- Аутентификация по умолчанию предполагает, что вы вошли в систему как или выполнили sudo для учетной записи postgres на хосте.
- Этот модуль использует 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 btree index if not exists test_idx concurrently covering columns id and name of table products
postgresql_idx:
db: acme
table: products
columns: id,name
name: test_idx
- name: Create btree index test_idx concurrently with tablespace called ssd and storage parameter
postgresql_idx:
db: acme
table: products
columns:
- id
- name
idxname: test_idx
tablespace: ssd
storage_params:
- fillfactor=90
- name: Create gist index test_gist_idx concurrently on column geo_data of table map
postgresql_idx:
db: somedb
table: map
idxtype: gist
columns: geo_data
idxname: test_gist_idx
# Note: for the example below pg_trgm extension must be installed for gin_trgm_ops
- name: Create gin index gin0_idx not concurrently on column comment of table test
postgresql_idx:
idxname: gin0_idx
table: test
columns: comment gin_trgm_ops
concurrent: no
idxtype: gin
- name: Drop btree test_idx concurrently
postgresql_idx:
db: mydb
idxname: test_idx
state: absent
- name: Drop test_idx cascade
postgresql_idx:
db: mydb
idxname: test_idx
state: absent
cascade: yes
concurrent: no
- name: Create btree index test_idx concurrently on columns id,comment where column id > 1
postgresql_idx:
db: mydb
table: test
columns: id,comment
idxname: test_idx
cond: id > 1
Возвращаемые значения
Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| name строка | всегда | Имя индекса. Пример: foo_idx |
| query строка | всегда | Запрос, который пытались выполнить. Пример: CREATE INDEX CONCURRENTLY foo_idx ON test_table USING BTREE (id) |
| schema строка | всегда | Схема, где существует индекс. Пример: public |
| state строка | всегда | Состояние индекса. Пример: present |
| storage_params список | всегда | Параметры хранения индекса. Пример: ['fillfactor=90'] |
| tablespace строка | всегда | Файловая система, где существует индекс. Пример: ssd |
| valid булево | всегда | Действительность индекса. Пример: True |
Статус
- Данный модуль не гарантирует обратной совместимости интерфейса. [превью]
- Этот модуль поддерживается сообществом 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_idx_module.html