community.postgresql.postgresql_schema 模块 – 添加或删除 PostgreSQL 模式

注意

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

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

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

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

概要

  • 添加或删除 PostgreSQL 模式。

要求

在执行此模块的主机上需要以下要求。

  • psycopg2 >= 2.5.1

参数

参数

注释

ca_cert

别名:ssl_rootcert

字符串

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

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

cascade_drop

布尔值

使用 CASCADE 删除模式以移除子对象。

选项

  • false ← (默认)

  • true

comment

字符串

在 community.postgresql 3.3.0 中添加

在模式上设置注释。

要重置注释,请传递一个空字符串。

connect_params

字典

在 community.postgresql 2.3.0 中添加

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

这些参数优先。

默认值: {}

database

别名:db,login_db

字符串

要连接并添加或删除模式的数据库的名称。

默认值: "postgres"

login_host

别名:host

字符串

运行数据库的主机。

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

默认值: ""

login_password

字符串

此模块应该用来建立其 PostgreSQL 会话的密码。

默认值: ""

login_unix_socket

别名:unix_socket

字符串

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

默认值: ""

login_user

别名:login

字符串

此模块应该用来建立其 PostgreSQL 会话的用户名。

默认值: "postgres"

name

别名:schema

字符串 / 必需

要添加或删除的模式的名称。

owner

字符串

要设置为模式所有者的角色的名称。

默认值: ""

port

别名:login_port

整数

要连接的数据库端口。

默认值: 5432

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"(验证 CA)

  • "verify-full"(完全验证)

state(状态)

字符串

模式状态。

选项

  • "absent"(不存在)

  • "present" ← (默认)

trust_input(信任输入)

布尔值

在 community.postgresql 0.2.0 中添加

如果为 false,则检查参数schemaownersession_role的值是否可能存在危险。

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

选项

  • false(假)

  • true ← (默认)

属性

属性

支持

描述

check_mode

支持: 完整

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

注释

注意

  • 默认身份验证假设您正在以 postgres 帐户登录或 sudo 到主机上的该帐户。

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

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

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

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

另请参阅

另请参阅

PostgreSQL 模式

有关 PostgreSQL 模式的常规信息。

CREATE SCHEMA 参考

CREATE SCHEMA 命令文档的完整参考。

ALTER SCHEMA 参考

ALTER SCHEMA 命令文档的完整参考。

DROP SCHEMA 参考

DROP SCHEMA 命令文档的完整参考。

示例

- name: Create a new schema with name acme in test database
  community.postgresql.postgresql_schema:
    db: test
    name: acme
    comment: 'My test schema'

- name: Create a new schema acme with a user bob who will own it
  community.postgresql.postgresql_schema:
    name: acme
    owner: bob

- name: Drop schema "acme" with cascade
  community.postgresql.postgresql_schema:
    name: acme
    state: absent
    cascade_drop: true

返回值

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

描述

queries(查询)

list(列表) / elements=string(元素=字符串)

已执行查询的列表。

已返回: 成功

示例: ["CREATE SCHEMA \"acme\""]

schema(模式)

字符串

模式的名称。

已返回: 成功

示例: "acme"

作者

  • Flavien Chantelot (@Dorn-)

  • Thomas O’Donnell (@andytom)