Spec-Zone.ru › Ansible 2.10

community.general.postgresql_idx – Создание или удаление индексов из базы данных PostgreSQL

Примечание

Этот плагин входит в коллекцию community.general (версия 1.3.2).

Для его установки используйте: ansible-galaxy collection install community.general.

Для использования в книге задач укажите: community.general.postgresql_idx.

  • Обзор
  • Требования
  • Параметры
  • Примечания
  • См. также
  • Примеры
  • Значения возврата

Обзор

  • Создание или удаление индексов из базы данных PostgreSQL.

Требования

Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.

  • psycopg2

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
ca_cert
строка
Указывает имя файла, содержащего сертификаты (CA) сертификата SSL.
Если файл существует, сертификат сервера будет проверен на подпись одним из этих авторитетов.

псевдонимы: ssl_rootcert
cascade
логическое значение
    Варианты:
  • нет ←
  • да
Автоматически удаляет объекты, зависящие от индекса, и все объекты, зависящие от этих объектов.
Используется только с state=absent.
Взаимоисключающие с concurrent=да
columns
список / элементы=строка
Список столбцов индекса, которые должны быть покрыты индексом.
Взаимоисключающие с state=absent.

псевдонимы: column
concurrent
логическое значение
    Варианты:
  • нет
  • да ←
Включить или выключить режим одновременной работы (CREATE / DROP INDEX CONCURRENTLY).
Обратите внимание, если concurrent=нет, таблица будет заблокирована (ACCESS EXCLUSIVE) во время процесса построения. Дополнительную информацию о уровнях блокировки см. в https://www.postgresql.org/docs/current/explicit-locking.html.
Если процесс построения был прерван по какой-либо причине при cuncurrent=да, индекс становится недействительным. В этом случае он должен быть удален и создан заново.
Взаимоисключающие с 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
строка
    Варианты:
  • разрешить
  • отключить
  • предпочитать ←
  • требовать
  • проверить-ca
  • полностью-проверить
Определяет, будет ли и с какой приоритетностью устанавливаться защищенное соединение SSL TCP/IP с сервером.
См. https://www.postgresql.org/docs/current/static/libpq-ssl.html для получения дополнительной информации о режимах.
Значение по умолчанию prefer соответствует значению по умолчанию libpq.
state
строка
    Варианты:
  • absent
  • present ←
Состояние индекса.
present подразумевает, что индекс будет создан, если он не существует.
absent подразумевает, что индекс будет удален, если он существует.
storage_params
список / элементы=строка
Параметры хранения, такие как fillfactor, vacuum_cleanup_index_scale_factor и т. д.
Взаимоисключающие с state=absent.
table
строка
Таблица, на которой нужно создать индекс.
Взаимоисключающие с state=absent.
tablespace
строка
Установить табличное пространство для индекса.
Взаимоисключающие с state=absent.
trust_input
логическое значение
добавлен в 0.2.0 из community.general
    Варианты:
  • нет
  • да ←
Если no, проверьте, являются ли значения параметров idxname, session_role, schema, table, columns, tablespace, storage_params, cond потенциально опасными.
Использование no имеет смысл только в том случае, если SQL-инъекции через параметры возможны.
unique
логическое значение
добавлен в 0.2.0 из community.general
    Варианты:
  • нет ←
  • да
Включить уникальный индекс.
В настоящее время только btree поддерживает уникальные индексы.

Примечания

Примечание

  • Процесс создания индекса может повлиять на производительность базы данных.
  • Чтобы избежать блокировок таблиц в базах данных в режиме работы, используйте concurrent=да (поведение по умолчанию).
  • Аутентификация по умолчанию предполагает, что вы входите в систему как или используете sudo для учетной записи postgres на хосте.
  • Чтобы избежать ошибки «Ошибка проверки подлинности клиента для пользователя postgres», используйте пользователя postgres в качестве become_user.
  • Этот модуль использует psycopg2, адаптер Python для базы данных PostgreSQL. Необходимо убедиться, что psycopg2 установлен на хосте перед использованием этого модуля.
  • Если удаленный хост — сервер PostgreSQL (что является случаем по умолчанию), то PostgreSQL также должен быть установлен на удаленном хосте.
  • Для систем на базе Ubuntu установите пакеты postgresql, libpq-dev и python-psycopg2 на удаленном хосте перед использованием этого модуля.
  • Параметр ca_cert требует как минимум версию Postgres 8.4 и psycopg2 версии 2.4.3.

См. также

См. также

community.general.postgresql_table

Официальная документация по модулю community.general.postgresql_table.

community.general.postgresql_tablespace

Официальная документация по модулю community.general.postgresql_tablespace.

Справочник по индексам 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.general.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.general.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.general.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.general.postgresql_idx:
    idxname: gin0_idx
    table: test
    columns: comment gin_trgm_ops
    concurrent: no
    idxtype: gin

- name: Drop btree test_idx concurrently
  community.general.postgresql_idx:
    db: mydb
    idxname: test_idx
    state: absent

- name: Drop test_idx cascade
  community.general.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
  community.general.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.general.postgresql_idx:
    db: acme
    table: products
    columns: name
    name: test_unique_idx
    unique: yes
    concurrent: no

Значения возврата

Общие значения возврата описаны в здесь, следующие поля уникальны для этого модуля:

Ключ Возвращаемое значение Описание
name
string
всегда
Имя индекса.

Пример:
foo_idx
query
string
всегда
Запрос, который пытались выполнить.

Пример:
CREATE INDEX CONCURRENTLY foo_idx ON test_table USING BTREE (id)
schema
string
всегда
Схема, в которой существует индекс.

Пример:
public
state
string
всегда
Состояние индекса.

Пример:
present
storage_params
list / elements=string
всегда
Параметры хранения индекса.

Пример:
['fillfactor=90']
tablespace
string
всегда
Файловая система, в которой существует индекс.

Пример:
ssd
valid
boolean
всегда
Действительность индекса.

Пример:
True


Авторы

  • Андрей Клычков (@Andersson007)
  • Томас О’Донелл (@andytom)

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/general/postgresql_idx_module.html

Spec-Zone.ru

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