Comandos úteis do PostgreSQL

Executando scripts longos dentro de uma transação

BEGIN;
\o /data/file.log
\i /data/file.sql
COMMIT;   # se não houver erros
ROLLBACK; # se houver problemas
\o # de volta para o terminal

Restaurar um backup dentro de um arquivo .tar.bz2

Procure o arquivo .out dentro do arquivo .tar.bz2.

tar --list --file=backup.tar.bz2

Este comando lista todos os arquivos dentro do arquivo compactado.

script.sh
README.txt
backup/my_db.out
backup/my_db_log_backup.txt

Agora, crie o novo banco de dados.

createdb my_db

Use o caminho correto do .out (dentro do .tar.bz2) no comando tar, para a saída padrão (stdout). Ao mesmo tempo, envie a stdout para o psql.

tar Ojxvf backup.tar.bz2 backup/my_db.out | psql my_db

Mostrar campos NULL no psql

Normalmente, o comando psql deixa os campos nulos em branco quando você executa uma query. Para forçar o psql a mostrar os valores nulos, use o comando \pset.

rodrigo@server:~$ psql test_db
psql (9.1.11)
Type "help" for help.

test_db=# SELECT NULL;
 ?column?
----------

(1 row)

test_db=# \pset null '(null)'
Null display is "(null)".
test_db=# SELECT NULL;
 ?column?
----------
 (null)
(1 row)

test_db=# \q
rodrigo@server:~$

No exemplo acima, vemos como o PostgreSQL mostra o valor nulo antes e depois do comando \pset. O texto escolhido para representar o valor nulo foi (null), mas pode ser qualquer outra string.

Essa configuração está disponível apenas nesta execução do psql.

Referência: Output Format Options