Модуль community.postgresql.postgresql_idx — создание и удаление индексов в базе данных PostgreSQL
Примечание
Этот модуль входит в коллекцию community.postgresql (версия 4.2.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.postgresql. Для использования этого модуля необходимы дополнительные требования; подробности см. в разделе Требования.
Чтобы использовать модуль в плейбуке, укажите: community.postgresql.postgresql_idx.
Краткое описание
- Создание и удаление индексов в базе данных PostgreSQL.
Требования
На узле, выполняющем этот модуль, должны быть соблюдены следующие требования.
- psycopg2 >= 2.5.1
Параметры
Параметр | Комментарии |
|---|---|
ca_cert псевдонимы: ssl_rootcert строка | Указывает имя файла, содержащего сертификат (или сертификаты) центра сертификации SSL (CA). Если файл существует, будет проверено, что сертификат сервера подписан одним из этих центров сертификации. |
cascade логический | Автоматически удалять объекты, зависящие от индекса, а также все объекты, зависящие от этих объектов. Используется только с state=absent. Взаимоисключающий параметр с concurrent=true. Варианты:
|
columns псевдонимы: column список / элементы=строка | Список столбцов, которые должны входить в индекс. Взаимоисключающий параметр с state=absent. |
concurrent логический | Включить или отключить параллельный режим (CREATE / DROP INDEX CONCURRENTLY). Обратите внимание: если concurrent=false, на время построения индекса таблица будет заблокирована (ACCESS EXCLUSIVE). Дополнительные сведения об уровнях блокировок см. на странице https://www.postgresql.org/docs/current/explicit-locking.html. Если по какой-либо причине процесс построения прервался при cuncurrent=true, индекс становится недействительным. В этом случае его следует удалить и создать заново. Взаимоисключающий параметр с cascade=true. Варианты:
|
cond строка | Условия для индекса. Взаимоисключающий параметр с state=absent. |
connect_params словарь добавлен в community.postgresql 2.3.0 | Любые дополнительные параметры, передаваемые в libpg. Эти параметры имеют приоритет. По умолчанию: |
idxname псевдонимы: name строка / обязательный | Имя создаваемого или удаляемого индекса. |
idxtype псевдонимы: type строка | Тип индекса (например, btree, gist, gin и т. д.). Взаимоисключающий параметр с state=absent. |
login_db псевдонимы: db строка | Имя базы данных, к которой необходимо подключиться и в которой будет создан или удалён индекс. Псевдоним |
login_host псевдонимы: host строка | Узел, на котором работает база данных. Если при использовании По умолчанию: |
login_password строка | Пароль, который модуль должен использовать для установки сеанса PostgreSQL. По умолчанию: |
login_port псевдонимы: port целое число | Порт базы данных для подключения. Псевдоним По умолчанию: |
login_unix_socket псевдонимы: unix_socket строка | Путь к доменному сокету Unix для локальных подключений. По умолчанию: |
login_user псевдонимы: login строка | Имя пользователя, которое модуль должен использовать для установки сеанса PostgreSQL. По умолчанию: |
schema строка | Имя схемы базы данных, в которой будет создан индекс. |
session_role строка | После подключения переключиться на session_role. Указанная session_role должна быть ролью, участником которой является текущий login_user. Проверка разрешений для команд SQL выполняется так, как если бы изначально вошедшим пользователем была session_role. |
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. Значение по умолчанию Варианты:
|
state строка | Состояние индекса. Значение Значение Варианты:
|
storage_params список / элементы=строка | Параметры хранения, например fillfactor, vacuum_cleanup_index_scale_factor и т. д. Взаимоисключающий параметр с state=absent. |
table строка | Таблица, для которой необходимо создать индекс. Взаимоисключающий параметр с state=absent. |
tablespace строка | Задать табличное пространство для индекса. Взаимоисключающий параметр с state=absent. |
trust_input логический добавлен в community.postgresql 0.2.0 | Если Использовать Варианты:
|
unique логический добавлен в community.postgresql 0.2.0 | Включить уникальный индекс. В настоящее время уникальные индексы поддерживаются только для btree. Варианты:
|
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Модуль может работать в режиме check_mode и возвращать прогноз изменения состояния, не изменяя целевой объект. |
Примечания
Примечание
- Процесс построения индекса может повлиять на производительность базы данных.
- Чтобы избежать блокировок таблиц в рабочих базах данных, используйте concurrent=true (поведение по умолчанию).
- По умолчанию предполагается, что вы входите в систему как учётная запись
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_table
-
Создание, удаление и изменение таблиц PostgreSQL.
- community.postgresql.postgresql_tablespace
-
Добавление и удаление табличных пространств PostgreSQL на удалённых узлах.
- Справочник по индексам PostgreSQL
-
Общие сведения об индексах PostgreSQL.
- Справочник по CREATE INDEX
-
Полная справочная документация по команде CREATE INDEX.
- Справочник по ALTER INDEX
-
Полная справочная документация по команде ALTER INDEX.
- Справочник по DROP INDEX
-
Полная справочная документация по команде DROP INDEX.
Примеры
- name: Create btree index if not exists test_idx concurrently covering columns id and name of table products
community.postgresql.postgresql_idx:
login_db: acme
table: products
columns: id,name
name: test_idx
- name: Create btree index test_idx concurrently with tablespace called ssd and storage parameter
community.postgresql.postgresql_idx:
login_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
community.postgresql.postgresql_idx:
login_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
community.postgresql.postgresql_idx:
idxname: gin0_idx
table: test
columns: comment gin_trgm_ops
concurrent: false
idxtype: gin
- name: Drop btree test_idx concurrently
community.postgresql.postgresql_idx:
login_db: mydb
idxname: test_idx
state: absent
- name: Drop test_idx cascade
community.postgresql.postgresql_idx:
login_db: mydb
idxname: test_idx
state: absent
cascade: true
concurrent: false
- name: Create btree index test_idx concurrently on columns id,comment where column id > 1
community.postgresql.postgresql_idx:
login_db: mydb
table: test
columns: id,comment
idxname: test_idx
cond: id > 1
- name: Create unique btree index if not exists test_unique_idx on column name of table products
community.postgresql.postgresql_idx:
login_db: acme
table: products
columns: name
name: test_unique_idx
unique: true
concurrent: false
Возвращаемые значения
Общие возвращаемые значения описаны здесь; ниже перечислены поля, уникальные для этого модуля:
Ключ | Описание |
|---|---|
name строка | Имя индекса. Возвращается: при успехе Пример: |
query строка | Запрос, который пытались выполнить. Возвращается: при успехе Пример: |
schema строка | Схема, в которой находится индекс. Возвращается: при успехе Пример: |
state строка | Состояние индекса. Возвращается: при успехе Пример: |
storage_params список / элементы=строка | Параметры хранения индекса. Возвращается: при успехе Пример: |
tablespace строка | Табличное пространство, в котором находится индекс. Возвращается: при успехе Пример: |
valid логический | Действительность индекса. Возвращается: при успехе Пример: |
Ссылки на коллекцию
© 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_idx_module.html