PostgreSQL Subscription
Resumo
- Adiciona, atualiza ou remove assinatura PostgreSQL
Parâmetros
Parâmetro | Tipo | Escolhas | Valores padrão | Comentários |
|---|---|---|---|
cascade | boolean | | Elimine dependências de assinatura. Tem efeito apenas com state=absent. Ignorado quando o state=present. |
connparams | dictionary | | O dicionário com parametros-valores para se conectar com o editor. Para obter mais informações, consulte https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING. Ignorado quando o state=absent. |
db | string | | Nome do banco de dados ao qual se conectar e onde o estado da assinatura será alterado. aliases: login_db |
name | string | | Nome da assinatura a ser adicionada, atualizada ou removida. |
owner | string | | Proprietário da assinatura. Se o owner não for definido, o proprietário será definido como login_user ou session_role. Ignorado quando o state=absent. |
publications | list | | Os nomes de publicação no editor a serem usados para a assinatura. Ignorado quando o state=absent. |
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 | | Estado da assinatura. present implica que, se a assinatura do nome informado não existir, ela será criada absent implica que, se a assinatura do nome informado existir, ela será removida. refresh implica que, se a assinatura de nome informado existir, ela será atualizada. Busca as informações da tabela que faltam do editor. Sempre retorna ``changed`` is `` True``. Isso iniciará a replicação de tabelas que foram adicionadas às publicações assinadas desde a última chamada de REFRESH PUBLICATION ou desde CREATE SUBSCRIPTION. Os dados existentes nas publicações que estão sendo assinadas devem ser copiados assim que a replicação for iniciada. Para obter mais informações sobre atualização, consulte https://www.postgresql.org/docs/current/sql-altersubscription.html. |
subsparams | dictionary | | Dicionário de parâmetros opcionais para uma assinatura, por exemplo, copy_data, enabled, create_slot, etc. Para atualizar as chaves de assinatura permitidas são enabled, slot_name, synchronous_commit, publication_name. Consulte os parâmetros disponíveis para criar uma nova assinatura em https://www.postgresql.org/docs/current/sql-createsubscription.html. Ignorado quando o state=absent. |
trust_input | boolean | | Caso use 'no', verifica se os valores dos parâmetros name, publications, owner, session_role, connparams, subsparams são potencialmente perigosos. Faz sentido usar yes 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 a assinatura acme no banco de dados mydb usando acme_publication e
os seguintes parâmetros de conexão para se conectar ao editor.
Defina o proprietário da assinatura como alice.
postgresql_subscription:
db: mydb
name: acme
state: present
publications: acme_publication
owner: alice
connparams:
host: 127.0.0.1
port: 5432
user: repl
password: replpass
dbname: mydb
- name: Supondo que a assinatura acme exista, tente alterar os parâmetros de conexão
postgresql_subscription:
db: mydb
name: acme
connparams:
host: 127.0.0.1
port: 5432
user: repl
password: replpass
connect_timeout: 100
- name: Atualizar publicação acme
postgresql_subscription:
db: mydb
name: acme
state: refresh
- name: Elimine a assinatura acme do mydb com dependências (cascade=yes)
postgresql_subscription:
db: mydb
name: acme
state: absent
cascade: yes
- name: Supondo que a assinatura acme exista e esteja ativada, desative a assinatura
postgresql_subscription:
db: mydb
name: acme
state: present
subsparams:
enabled: no
Valores retornados
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
exists | boolean | sempre | Indica que a assinatura existe ou não no final do tempo de execução. Exemplo: True |
final_state | dictionary | sempre | Configuração de assinatura no final do tempo de execução. Exemplo: {'conninfo': {}, 'enabled': True, 'owner': 'postgres', 'slotname': 'test', 'synccommit': True} |
initial_state | dictionary | sempre | Configuração de assinatura no início do tempo de execução. Exemplo: {'conninfo': {}, 'enabled': True, 'owner': 'postgres', 'slotname': 'test', 'synccommit': True} |
name | string | sempre | Nome da assinatura. Exemplo: acme |
queries | string | sempre | Lista de consultas executadas. Exemplo: ['DROP SUBSCRIPTION "mysubscription"'] |