community.postgresql.postgresql_sequence – Создание, удаление или изменение последовательности PostgreSQL
Примечание
Этот плагин входит в коллекцию community.postgresql (версия 1.0.0).
Для его установки используйте: ansible-galaxy collection install community.postgresql.
Для использования в книге задач укажите: community.postgresql.postgresql_sequence.
Описание
- Позволяет создавать, удалять или изменять определение генератора последовательностей.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- psycopg2
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert строка | Указывает имя файла, содержащего сертификаты центра сертификации (CA). Если файл существует, серверный сертификат будет проверен на подпись одним из этих центров. Псевдонимы: ssl_rootcert | |
| cache целое число | Параметр cache определяет, сколько номеров последовательности предварительно выделяется и хранится в памяти для более быстрого доступа. Минимальное значение равно 1 (можно генерировать только одно значение за раз, то есть кеширование отключено), и это значение также используется по умолчанию. | |
| cascade логическое значение |
| Автоматически удаляет объекты, зависящие от последовательности, и, в свою очередь, все объекты, зависящие от этих объектов. Игнорируется, если state=present. Используется только с state=absent. |
| cycle логическое значение |
| Опция cycle позволяет последовательности циклично повторяться, когда maxvalue или minvalue достигнуты восходящей или нисходящей последовательностью, соответственно. Если предел достигнут, следующее сгенерированное число будет minvalue или maxvalue соответственно. Если указано false, (ЦИКЛ ОТКЛЮЧЕН), любые вызовы nextval после того, как последовательность достигнет своего максимального значения, вернут ошибку. По умолчанию используется ложь (ЦИКЛ ОТКЛЮЧЕН). |
| data_type строка |
| Указывает тип данных последовательности. Допустимые типы — bigint, integer и smallint. По умолчанию используется bigint. Тип данных определяет значения по умолчанию для минимального и максимального значений последовательности. Дополнительную информацию см. в документации https://www.postgresql.org/docs/current/sql-createsequence.html. Поддерживается начиная с PostgreSQL 10. |
| db строка | Имя базы данных для подключения и выполнения запросов. Псевдонимы: database, login_db | |
| increment целое число | Increment определяет, какое значение добавляется к текущему значению последовательности для создания нового значения. Положительное значение создаст восходящую последовательность, отрицательное — нисходящую. Значение по умолчанию равно 1. | |
| login_host строка | Хост, на котором работает база данных. | |
| login_password строка | Пароль для аутентификации. | |
| login_unix_socket строка | Путь к сокету Unix для локальных подключений. | |
| login_user строка | По умолчанию: "postgres" | Имя пользователя для аутентификации. |
| maxvalue целое число | Maxvalue определяет максимальное значение для последовательности. По умолчанию для восходящей последовательности — максимальное значение типа данных. По умолчанию для нисходящей последовательности — -1. Псевдонимы: max | |
| minvalue целое число | Minvalue определяет минимальное значение, которое может сгенерировать последовательность. По умолчанию для восходящей последовательности — 1. По умолчанию для нисходящей последовательности — минимальное значение типа данных. Псевдонимы: min | |
| newschema строка | Новая схема для последовательности. Используется для перемещения последовательности в другую схему. Работает только для существующих последовательностей. | |
| owner строка | Установить владельца последовательности. | |
| port целое число | По умолчанию: 5432 | Порт базы данных для подключения. Псевдонимы: login_port |
| rename_to строка | Новое имя для последовательности. Работает только для существующих последовательностей. | |
| schema строка | По умолчанию: "public" | Схема последовательности. Используется для создания и перемещения последовательности в заданную схему. |
| sequence строка / обязательный | Имя последовательности. Псевдонимы: name | |
| 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. |
| start целое число | Start позволяет начать последовательность с любого значения. Значение по умолчанию для восходящих последовательностей равно minvalue, для нисходящих — maxvalue. | |
| state строка |
| Состояние последовательности. Если state=absent, другие параметры будут проигнорированы, кроме name и schema. |
| trust_input логическое значение добавлено в 0.2.0 community.postgresql |
| Если no, проверьте, не являются ли потенциально опасными значения параметров sequence, schema, rename_to, owner, newschema, session_role.Использование no имеет смысл только тогда, когда возможны SQL-инъекции через параметры. |
Примечания
Примечание
- Если вы не передаете параметр db, последовательность будет создана в базе данных с именем postgres.
- Аутентификация по умолчанию предполагает, что вы либо вошли в систему как, либо запустили команду sudo с учетной записью
postgresна хосте. - Чтобы избежать ошибки «Ошибка аутентификации peer для пользователя 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.postgresql.postgresql_table
-
Официальная документация по модулю community.postgresql.postgresql_table.
- community.postgresql.postgresql_owner
-
Официальная документация по модулю community.postgresql.postgresql_owner.
- community.postgresql.postgresql_privs
-
Официальная документация по модулю community.postgresql.postgresql_privs.
- community.postgresql.postgresql_tablespace
-
Официальная документация по модулю community.postgresql.postgresql_tablespace.
- Ссылка на CREATE SEQUENCE
-
Полное руководство по команде CREATE SEQUENCE.
- Ссылка на ALTER SEQUENCE
-
Полное руководство по команде ALTER SEQUENCE.
- Ссылка на DROP SEQUENCE
-
Полное руководство по команде DROP SEQUENCE.
Примеры
- name: Create an ascending bigint sequence called foobar in the default
database
community.postgresql.postgresql_sequence:
name: foobar
- name: Create an ascending integer sequence called foobar, starting at 101
community.postgresql.postgresql_sequence:
name: foobar
data_type: integer
start: 101
- name: Create an descending sequence called foobar, starting at 101 and
preallocated 10 sequence numbers in cache
community.postgresql.postgresql_sequence:
name: foobar
increment: -1
cache: 10
start: 101
- name: Create an ascending sequence called foobar, which cycle between 1 to 10
community.postgresql.postgresql_sequence:
name: foobar
cycle: yes
min: 1
max: 10
- name: Create an ascending bigint sequence called foobar in the default
database with owner foobar
community.postgresql.postgresql_sequence:
name: foobar
owner: foobar
- name: Rename an existing sequence named foo to bar
community.postgresql.postgresql_sequence:
name: foo
rename_to: bar
- name: Change the schema of an existing sequence to foobar
community.postgresql.postgresql_sequence:
name: foobar
newschema: foobar
- name: Change the owner of an existing sequence to foobar
community.postgresql.postgresql_sequence:
name: foobar
owner: foobar
- name: Drop a sequence called foobar
community.postgresql.postgresql_sequence:
name: foobar
state: absent
- name: Drop a sequence called foobar with cascade
community.postgresql.postgresql_sequence:
name: foobar
cascade: yes
state: absent
Значения возврата
Общие значения возврата описаны здесь, следующие — уникальные для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| cycle строка | всегда | Указывает, является ли последовательность циклической. Пример: НЕТ |
| data_type строка | всегда | Показывает текущий тип данных последовательности. Пример: bigint |
| increment целое число | всегда | Значение приращения последовательности. Положительное значение создаёт возрастающую последовательность, отрицательное — убывающую. Пример: -1 |
| maxvalue целое число | всегда | Значение максимального значения последовательности. Пример: 9223372036854775807 |
| minvalue целое число | всегда | Значение минимального значения последовательности. Пример: 1 |
| newname строка | при успехе | Показывает новое имя последовательности после переименования. Пример: barfoo |
| newschema строка | при успехе | Показывает новую схему последовательности после изменения схемы. Пример: foobar |
| owner строка | всегда | Показывает текущего владельца последовательности после успешного выполнения задачи. Пример: postgres |
| queries строка | всегда | Список запросов, которые пытались выполнить. Пример: ['CREATE SEQUENCE "foo"'] |
| schema строка | всегда | Имя схемы последовательности Пример: foo |
| sequence строка | всегда | Имя последовательности. Пример: foobar |
| start целое число | всегда | Значение начала последовательности. Пример: 12 |
| state строка | всегда | Состояние последовательности в конце выполнения. Пример: present |
Авторы
- Tobias Birkefeld (@tcraxs)
- Thomas O’Donnell (@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/postgresql/postgresql_sequence_module.html