Estou executando o seguinte comando para criar um despejo de todos os bancos de dados no meu servidor de produção:
prodserver:/# pg_dumpall -U postgres -h 1.1.1.1 > prod.sql
na minha caixa de desenvolvimento, também faço um backup fazendo:
devserver:/# pg_dumpall -U postgres -h 1.1.1.1 > dev.sql
Então eu tento restaurar o banco de dados de produção para desenvolvimento da seguinte forma:
devserver:/# psql -f prod.sql -U postgres
Ele roda sem erros. E parece estar criando tabelas/importando dados. (Eu sei porque se eu executá-lo uma segunda vez, recebo mensagens de que certos dados já existem/já existem relacionamentos.)
Mas quando eu entro assim:
psql -U postgres -d databasename
os dados parecem iguais aos dados de desenvolvimento antigos.
Eu tentei o seguinte com os dados de produção supostamente restaurados:
select count(*) from widgets;
Eu comparo isso com a contagem retornada quando estou usando o banco de dados de desenvolvimento e eles são os mesmos.
Eu também tentei reiniciar o postgresql depois de tentar a restauração ... é impossível.
Qualquer sugestão sobre o que posso estar fazendo de errado seria apreciada.
Obrigado.
EDITAR 1
Também verifiquei o seguinte:
Abri o arquivo prod.sql e encontrei instruções de inserção como:
INSERT INTO widgets_to_wiget_groups VALUES (363, 15);
E então fiz uma instrução select no banco de dados para ver se tinha essa entrada na tabela, mas não tenho ... talvez esteja restaurando, mas no contexto de outro usuário?
EDITAR 2
eu também tentei
psql -f prod.sql -U postgres -h 1.1.1.1
mas ainda não funcionou Como teste, tentei restaurar o arquivo de despejo em outro novo servidor ... mesmos resultados. Então verifiquei e vi que no arquivo dump não existe o comando CREATE DATABASE. Estou pensando que o comando original para despejar o arquivo está incorreto ...
eu tive que correr
para criar manualmente o banco de dados e, em seguida, alterou o comando de restauração para: