Resumo de Comando PostgreSQL

Criando uma senha
sudo su postgres -c psql postgres
ALTER USER postgres WITH PASSWORD 'sua_senha';

Gerenciar bancos de dados

Criar uma base pelo terminal
createdb -U username -E utf8 dbname -h localhost

Criar uma base pelo psql
create database dbname with owner=postgres encoding='utf8';

Renomear uma base
alter database "old_name" rename to "new_name";

Apagar uma base
drop database dbname;

Backup (dump) e restore

Dump de uma base
pg_dump dbname -h localhost -U postgres > backup.sql

Dump de uma tabela apenas
pg_dump dbname -h localhost -U postgres > backup.sql --table=nome_tabela;

Dump de uma base apenas com algumas tabelas
pg_dump dbname -h localhost -U postgres > backup.sql --table=nome_tabela --table=outra_tabela;

Dump de uma base sem determinada tabela
pg_dump dbname -h localhost -U postgres > backup.sql --exclude-table=nome_tabela;

Dump de uma base excluindo várias tabelas
pg_dump dbname -h localhost -U postgres > backup.sql --exclude-table=nome_tabela --exclude-table=outra_tabela;

Restore de uma base
psql dbname -h localhost -U postgres < backup.sql

Dump dos usuários de uma base
pg_dumpall -g -U postgres -h localhost > users.sql

Comandos especiais em queries

Data
select (current_date + integer '7') as nome_campo;
Veja mais exemplos aqui.

Erros comuns

Duplicate key value violates unique constraint
Ao migrar uma base para PostgreSQL ou fazer alguma coisa errada sem querer, o seguinte erro pode aparecer:
PGError: ERROR: duplicate key value violates unique constraint “tablename_pkey”

Para resolver:
select setval('entities_id_seq', (select max(id) from entities)+1);

Personalizando o psql

alterando o pager

\pset pager off
\pset pager off
\pset pager always
\pset pager occasionally
\pset pager at random

Exibir ‘(null)’ quando um campo for null

\pset null '(null)'

Veja mais configurações aqui.



Nenhum comentário:

Postar um comentário