PostgreSQL Publication
Resumo
- Adiciona, atualiza ou remove publicação PostgreSQL
Parâmetros
Parâmetro | Tipo | Escolhas | Valores padrão | Comentários |
|---|---|---|---|
cascade | | Escolhas:
| Elimine dependências de publicação. Tem efeito apenas com state=absent. |
db | string | | Nome do banco de dados ao qual se conectar e onde o estado de publicação será alterado. aliases: login_db |
name | string | | Nome da publicação a ser adicionada, atualizada ou removida. |
owner | string | | Proprietário da publicação. Se o owner não for definido, o proprietário será definido como login_user ou session_role. |
parameters | dictionary | | Dicionário com parâmetros de publicação opcionais. Os parâmetros disponíveis dependem da versão do PostgreSQL. |
session_role | string | | Alterna para session_role após conectar. O session_role especificado deve ser uma função da qual o login_user atual é membro. A verificação de permissões para comandos SQL é realizada como se o session_role fosse aquele que havia se logado originalmente. |
state | string | Escolhas:
| O estado de publicação. |
tables | list | | Lista de tabelas a serem adicionadas à publicação. Se nenhum valor for definido, todas as tabelas serão direcionadas. Se a publicação já existir para tabelas específicas e as tables não forem enviadas, nada será alterado. Se você precisar adicionar todas as tabelas à publicação com o mesmo nome, elimine existentes e crie novos sem passar tables. |
trust_input | boolean | Escolhas:
| Caso use 'no', verifica se os valores dos parâmetros name, tables, owner, session_role, params são potencialmente perigosos. Faz sentido usar não apenas quando as injeções de SQL por meio dos parâmetros são possíveis. |
Extende fragmentos da documentação do módulo PostgreSQL Base
Notas
- A versão do PostgreSQL deve ser 10 ou superior.
- A autenticação padrão assume que você está fazendo login ou sudo na conta do postgres no host.
- Para evitar o erro “Peer authentication failed for user postgres”, use o usuário postgres como um become_user.
- Se o host remoto for o servidor PostgreSQL (que é o caso padrão), o PostgreSQL também deve ser instalado no host remoto.
- O parâmetro ca_cert requer pelo menos Postgres versão 8.4.
Exemplos
- name: Crie uma nova publicação com o nome "acme" visando todas as tabelas no banco de dados "test"
postgresql_publication:
db: test
name: acme
- name: Crie a publicação "acme" publicando apenas tabelas prices e vehicles
postgresql_publication:
name: acme
tables:
- prices
- vehicles
- name: >
Crie a publicação "acme", defina a usuária alice como proprietária, direcionando todas as tabelas
As operações DML permitidas são apenas INSERT e UPDATE
postgresql_publication:
name: acme
owner: alice
parameters:
publish: 'insert,update'
- name: >
Supondo que a publicação "acme" exista e haja
tabelas "prices" e "vehicles", adicionar tabela "stores" à publicação
postgresql_publication:
name: acme
tables:
- prices
- vehicles
- stores
- name: Remove a publicação "acme" se existir no banco de dados "test"
postgresql_publication:
db: test
name: acme
state: absentValores retornados
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
alltables | boolean | se publicação existe | Indica que todas as tabelas foram publicadas. |
exists | boolean | sempre | Indica que a publicação existe ou não no final do tempo de execução. Exemplo: True |
owner | string | se publicação existe | Owner of the publication at the end of runtime. Exemplo: alice |
parameters | dictionary | se publicação existe | Proprietário da publicação no final do tempo de execução. Exemplo: {'publish': {'delete': False, 'insert': False, 'update': True}} |
queries | string | sempre | Lista de consultas executadas. Exemplo: ['DROP PUBLICATION "acme" CASCADE'] |
tables | list | se publicação existe | Lista de tabelas na publicação no final do tempo de execução. Se todas as tabelas forem publicadas, retorna lista vazia. Exemplo: ['"public"."prices"', '"public"."vehicles"'] |