PostgreSQL Table
Resumo
- Permite criar, eliminar, renomear, truncar uma tabela ou alterar alguns atributos da tabela.
Parâmetros
Parâmetro | Tipo | Escolhas | Valores padrão | Comentários |
|---|---|---|---|
cascade | boolean | Escolhas:
| Remova automaticamente os objetos que dependem da tabela (como views). Usado apenas com state=absent. |
columns | list | | Colunas que são necessárias. |
db | string | | Nome do banco de dados a ser conectado e onde a tabela será criada. aliases: login_db |
including | string | | Palavras-chave que são usadas com o mesmo parâmetro, podem ser DEFAULTS, CONSTRAINTS, INDEXES, STORAGE, COMMENTS ou ALL. Necessárias como especificado. Mutuamente exclusivo com columns, rename, e truncate. |
like | string | | Crie uma tabela como outra tabela (com DDL semelhante). Mutuamente exclusivo com columns, rename, e truncate. |
owner | string | | Define um proprietário para a tabela. |
rename | string | | Nome da nova tabela. Mutuamente exclusivo com tablespace, owner, unlogged, like, including, columns, truncate, e storage_params. |
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 da tabela. state=absent é mutuamente exclusivo com tablespace, owner, unlogged, like, including, columns, truncate, storage_params and, rename. |
storage_params | list | | Parâmetros de armazenamento como fillfactor, autovacuum_vacuum_treshold, etc. Mutuamente exclusivo com rename e truncate. |
table | string | | Nome da tabela. aliases: name |
tablespace | string | | Define um tablespace para a tabela |
truncate | string | Escolhas:
| Truncar uma tabela. Mutuamente exclusivo com tablespace, owner, unlogged, like, including, columns, rename, and storage_params. |
trust_input | boolean | Escolhas:
| Caso use 'no', verifica se os valores dos parâmetros são potencialmente perigosos. Faz sentido usar não apenas quando as injeções de SQL são possíveis. |
unlogged | boolean | Escolhas:
| Crie uma tabela não registrada, |
Extende fragmentos da documentação do módulo PostgreSQL Base
Notas
- Se não informar o parâmetro db, serão criadas tabelas no banco de dados chamado postgres.
- O PostgreSQL permite criar tabelas sem colunas, então o parâmetro columns é opcional.
- As tabelas não registradas estão disponíveis no servidor PostgreSQL versão 9.1.
- 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: Cria tbl2 no banco de dados acme com o DDL como tbl1 com testuser como um proprietário
postgresql_table:
db: acme
name: tbl2
like: tbl1
owner: testuser
- name: Cria tbl2 no banco de dados acme e tablespace ssd com o DDL como tbl1 incluindo comentários e índices
postgresql_table:
db: acme
table: tbl2
like: tbl1
including: comments, indexes
tablespace: ssd
- name: Cria test_table com várias colunas no tablespace ssd com fillfactor=10 e autovacuum_analyze_threshold=1
postgresql_table:
name: test_table
columns:
- id bigserial primary key
- num bigint
- stories text
tablespace: ssd
storage_params:
- fillfactor=10
- autovacuum_analyze_threshold=1
- name: Cria uma tabela não registrada no schema acme
postgresql_table:
name: acme.useless_data
columns: waste_id int
unlogged: true
- name: Renomeia tabela foo para bar
postgresql_table:
table: foo
rename: bar
- name: Renomeia a tabela foo de schema acme para bar
postgresql_table:
name: acme.foo
rename: bar
- name: Define proprietário como someuser
postgresql_table:
name: foo
owner: someuser
- name: Altera o tablespace da tabela foo para new_tablespace e define o proprietário para new_user
postgresql_table:
name: foo
tablespace: new_tablespace
owner: new_user
- name: Truncar tabela foo
postgresql_table:
name: foo
truncate: yes
- name: Elimina tabela foo do schema acme
postgresql_table:
name: acme.foo
state: absent
- name: Elimina tabela bar com cascade
postgresql_table:
name: bar
state: absent
cascade: yes
Valores retornados
Chave | Tipo | Retornado quando | Descrição |
|---|---|---|---|
owner | string | sempre | Proprietário da tabela. Exemplo: postgres |
queries | string | sempre | Lista de consultas executadas. Exemplo: ['CREATE TABLE "test_table" (id bigint)'] |
state | string | sempre | Estado da tabela. Exemplo: present |
storage_params | list | sempre | Parâmetros de armazenamento. Exemplo: ['fillfactor=100', 'autovacuum_analyze_threshold=1'] |
table | string | sempre | Nome da tabela. Exemplo: foo |
tablespace | string | sempre | Tablespace da tabela. Exemplo: ssd_tablespace |