Spec-Zone.ru › Ansible

Модуль 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.

Варианты:

  • false ← (по умолчанию)
  • 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.

Варианты:

  • false
  • true ← (по умолчанию)

cond

строка

Условия для индекса.

Взаимоисключающий параметр с state=absent.

connect_params

словарь

добавлен в community.postgresql 2.3.0

Любые дополнительные параметры, передаваемые в libpg.

Эти параметры имеют приоритет.

По умолчанию: {}

idxname

псевдонимы: name

строка / обязательный

Имя создаваемого или удаляемого индекса.

idxtype

псевдонимы: type

строка

Тип индекса (например, btree, gist, gin и т. д.).

Взаимоисключающий параметр с state=absent.

login_db

псевдонимы: db

строка

Имя базы данных, к которой необходимо подключиться и в которой будет создан или удалён индекс.

Псевдоним db устарел и будет удалён в версии 5.0.0.

login_host

псевдонимы: host

строка

Узел, на котором работает база данных.

Если при использовании localhost возникают проблемы с подключением, попробуйте вместо этого использовать 127.0.0.1.

По умолчанию: ""

login_password

строка

Пароль, который модуль должен использовать для установки сеанса PostgreSQL.

По умолчанию: ""

login_port

псевдонимы: port

целое число

Порт базы данных для подключения.

Псевдоним port устарел и будет удалён в следующем основном выпуске. Вместо него используйте login_port.

По умолчанию: 5432

login_unix_socket

псевдонимы: unix_socket

строка

Путь к доменному сокету Unix для локальных подключений.

По умолчанию: ""

login_user

псевдонимы: login

строка

Имя пользователя, которое модуль должен использовать для установки сеанса PostgreSQL.

По умолчанию: "postgres"

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.

Значение по умолчанию prefer соответствует значению по умолчанию libpq.

Варианты:

  • "allow"
  • "disable"
  • "prefer" ← (по умолчанию)
  • "require"
  • "verify-ca"
  • "verify-full"

state

строка

Состояние индекса.

Значение present означает, что индекс будет создан, если он не существует.

Значение absent означает, что индекс будет удалён, если он существует.

Варианты:

  • "absent"
  • "present" ← (по умолчанию)

storage_params

список / элементы=строка

Параметры хранения, например fillfactor, vacuum_cleanup_index_scale_factor и т. д.

Взаимоисключающий параметр с state=absent.

table

строка

Таблица, для которой необходимо создать индекс.

Взаимоисключающий параметр с state=absent.

tablespace

строка

Задать табличное пространство для индекса.

Взаимоисключающий параметр с state=absent.

trust_input

логический

добавлен в community.postgresql 0.2.0

Если false, проверить, не являются ли значения параметров idxname, session_role, schema, table, columns, tablespace, storage_params, cond потенциально опасными.

Использовать false имеет смысл только в том случае, если через параметры возможны SQL-инъекции.

Варианты:

  • false
  • true ← (по умолчанию)

unique

логический

добавлен в community.postgresql 0.2.0

Включить уникальный индекс.

В настоящее время уникальные индексы поддерживаются только для btree.

Варианты:

  • false ← (по умолчанию)
  • true

Атрибуты

Атрибут

Поддержка

Описание

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

строка

Имя индекса.

Возвращается: при успехе

Пример: "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

Авторы

  • Andrew Klychkov (@Andersson007)
  • Thomas O’Donnell (@andytom)

Ссылки на коллекцию

  • Отслеживание проблем
  • Репозиторий (исходный код)
  • Сообщить о проблеме
  • Связь

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API