Spec-Zone.ru › Ansible

Модуль community.postgresql.postgresql_idx — Создание или удаление индексов в базе данных PostgreSQL

Примечание

Этот модуль входит в коллекцию community.postgresql (версия 3.6.1).

Возможно, эта коллекция уже установлена, если вы используете пакет 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

строка

Указывает имя файла, содержащего сертификат(ы) центра сертификации (CA) для SSL.

Если файл существует, сертификат сервера будет проверен на подпись одним из этих центров.

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.

Если процесс построения был прерван по какой-либо причине при concurrent=true, индекс становится недействительным. В этом случае он должен быть удален и создан заново.

Исключающее с cascade=true.

Варианты:

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

cond

строка

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

Исключающее с state=absent.

connect_params

словарь

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

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

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

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

db

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

строка

Имя базы данных для подключения и где индекс будет создан/удален.

idxname

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

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

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

idxtype

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

строка

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

Исключающее с state=absent.

login_host

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

строка

Хост, на котором работает база данных.

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

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

login_password

строка

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

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

login_unix_socket

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

строка

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

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

login_user

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

строка

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

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

port

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

целое число

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

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

schema

строка

Имя схемы базы данных, где будет создан индекс.

session_role

строка

Переключиться на session_role после подключения. Указанный session_role должен быть ролью, членом которой является текущий login_user.

Проверка разрешений для команд SQL выполняется так, как если бы session_role был тем, кто первоначально вошел в систему.

ssl_cert

путь

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

Указывает имя файла клиентского SSL-сертификата.

END_OF_DOCUMENT_MARKER

ssl_key

path

added in community.postgresql 2.4.0

Указывает расположение секретного ключа, используемого для сертификата клиента.

ssl_mode

string

Определяет, будет ли и с каким приоритетом устанавливаться защищенное соединение SSL TCP/IP с сервером.

Дополнительную информацию о режимах см. в https://www.postgresql.org/docs/current/static/libpq-ssl.html.

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

Варианты:

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

state

string

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

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

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

Варианты:

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

storage_params

list / elements=string

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

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

table

string

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

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

tablespace

string

Указывает табличное пространство для индекса.

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

trust_input

boolean

added in community.postgresql 0.2.0

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

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

Варианты:

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

unique

boolean

added in community.postgresql 0.2.0

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

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

Варианты:

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

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

Может работать в режиме проверки и возвращать прогнозируемый результат изменений без модификации целевого объекта.

Примечания

Примечание

  • Процесс создания индекса может повлиять на производительность базы данных.
  • Для предотвращения блокировок таблиц в производственных базах данных используйте concurrent=true (поведение по умолчанию).
  • Авторизация по умолчанию предполагает, что вы вошли как пользователь или используете sudo для входа в учетную запись postgres на хосте.
  • Для предотвращения ошибки «Ошибка проверки подлинности участника для пользователя 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:
    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:
    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:
    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:
    db: mydb
    idxname: test_idx
    state: absent

- name: Drop test_idx cascade
  community.postgresql.postgresql_idx:
    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:
    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:
    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–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/postgresql/postgresql_idx_module.html

Spec-Zone.ru

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