community.postgresql.postgresql_sequence 模块 – 创建、删除或更改 PostgreSQL 序列

注意

此模块是 community.postgresql 集合 (3.9.0 版本) 的一部分。

如果您使用的是 ansible 包,则可能已安装此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.postgresql。您需要进一步的要求才能使用此模块,请参阅 要求 以了解详细信息。

要在 playbook 中使用它,请指定:community.postgresql.postgresql_sequence

概要

  • 允许创建、删除或更改序列生成器的定义。

要求

执行此模块的主机需要满足以下要求。

  • psycopg2 >= 2.5.1

参数

参数

注释

ca_cert

别名:ssl_rootcert

字符串

指定包含 SSL 证书颁发机构 (CA) 证书的文件名。

如果文件存在,将验证服务器的证书是否由这些机构之一签名。

cache

整数

Cache 指定要预先分配并存储在内存中以更快访问的序列号的数量。最小值是 1(一次只能生成一个值,即没有缓存),这也是默认值。

cascade

布尔值

自动删除依赖于该序列的对象,并依次删除依赖于这些对象的所有对象。

如果state=present,则忽略。

仅与state=absent一起使用。

选择

  • false ←(默认)

  • true

connect_params

字典

在 community.postgresql 2.3.0 中添加

要传递给 libpg 的任何其他参数。

这些参数优先。

默认值: {}

cycle

布尔值

当升序或降序序列分别达到maxvalueminvalue时,cycle 选项允许序列回绕。如果达到限制,则生成的下一个数字将分别是最小值或最大值。

如果指定 false (NO CYCLE),则在序列达到其最大值后对 nextval 的任何调用都将返回错误。False (NO CYCLE) 是默认值。

选择

  • false ←(默认)

  • true

data_type

字符串

指定序列的数据类型。有效类型为 bigint、integer 和 smallint。bigint 是默认值。数据类型决定了序列的默认最小值和最大值。有关更多信息,请参阅文档 https://postgresql.ac.cn/docs/current/sql-createsequence.html

从 PostgreSQL 10 开始支持。

选择

  • "bigint"

  • "integer"

  • "smallint"

db

别名:database, login_db

字符串

要连接并针对其运行查询的数据库的名称。

默认值: ""

increment

整数

Increment 指定添加到当前序列值以创建新值的值。

正值将创建一个升序序列,负值将创建一个降序序列。默认值为 1。

login_host

别名:host

字符串

运行数据库的主机。

如果在使用 localhost 时遇到连接问题,请尝试使用 127.0.0.1 代替。

默认值: ""

login_password

字符串

此模块应使用的密码,以建立其 PostgreSQL 会话。

默认值: ""

login_unix_socket

别名:unix_socket

字符串

用于本地连接的 Unix 域套接字的路径。

默认值: ""

login_user

别名:login

字符串

此模块应使用的用户名,以建立其 PostgreSQL 会话。

默认值: "postgres"

maxvalue

别名:max

整数

Maxvalue 确定序列的最大值。升序序列的默认值是数据类型的最大值。降序序列的默认值是 -1。

minvalue

别名:min

整数

Minvalue 决定序列可以生成的最小值。对于升序序列,默认值为 1。对于降序序列,默认值为数据类型的最小值。

newschema

字符串

序列的新模式。用于将序列移动到另一个模式

仅适用于现有序列。

owner

字符串

设置序列的所有者。

port

别名: login_port

整数

连接的数据库端口。

默认值: 5432

rename_to

字符串

序列的新名称。

仅适用于现有序列。

schema

字符串

序列的模式。用于在给定模式中创建和重新定位序列

默认值: "public"

sequence

别名: name

string / 必填

序列的名称。

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://postgresql.ac.cn/docs/current/static/libpq-ssl.html

默认值 prefer 与 libpq 默认值匹配。

选择

  • "allow"

  • "disable"

  • "prefer" ← (默认)

  • "require"

  • "verify-ca"

  • "verify-full"

start

整数

Start 允许序列从任何位置开始。对于升序序列,默认起始值为 minvalue,对于降序序列,默认起始值为 maxvalue

state

字符串

序列状态。

如果 state=absent,则除了 nameschema 之外的其他选项都将被忽略。

选择

  • "absent"

  • "present" ← (默认)

trust_input

布尔值

在 community.postgresql 0.2.0 中添加

如果 false,请检查参数 sequenceschemarename_toownernewschemasession_role 的值是否具有潜在危险。

仅当通过参数可能进行 SQL 注入时,使用 false 才有意义。

选择

  • false

  • true ← (默认)

属性

属性

支持

描述

check_mode

支持: 完全

可以在 check_mode 中运行,并返回更改的状态预测,而无需修改目标。

注意

注意

  • 如果您不传递 db 参数,则将在名为 postgres 的数据库中创建序列。

  • 默认身份验证假定您是以主机上的 postgres 帐户登录或 sudo 登录。

  • 要避免“用户 postgres 的对等身份验证失败”错误,请使用 postgres 用户作为 become_user

  • 此模块使用 psycopg,这是一个 Python PostgreSQL 数据库适配器。您必须确保在使用此模块之前,主机上已安装 psycopg2 >= 2.5.1psycopg3 >= 3.1.8

  • 如果远程主机是 PostgreSQL 服务器(默认情况),则还必须在远程主机上安装 PostgreSQL。

  • 对于基于 Ubuntu 的系统,请在使用此模块之前,在远程主机上安装 postgresqllibpq-devpython3-psycopg2 包。

另请参阅

另请参阅

community.postgresql.postgresql_table

创建、删除或修改 PostgreSQL 表。

community.postgresql.postgresql_owner

更改 PostgreSQL 数据库对象的所有者。

community.postgresql.postgresql_privs

授予或撤销 PostgreSQL 数据库对象的权限。

community.postgresql.postgresql_tablespace

从远程主机添加或删除 PostgreSQL 表空间。

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: true
    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: true
    state: absent

返回值

常见的返回值记录在此处,以下是此模块特有的字段

描述

cycle

布尔值

显示序列是否循环。

返回值: 成功

示例: false

data_type

字符串

显示序列的当前数据类型。

返回值: 成功

示例: "bigint"

increment

整数

序列的增量值。正值将生成升序序列,负值将生成降序序列。

返回值: 成功

示例: -1

maxvalue

整数

序列的 maxvalue 值。

返回值: 成功

示例: 9223372036854775807

minvalue

整数

序列的 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)