PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Transferir dados entre bancos de dados com PostgreSQL


Eu tinha que fazer exatamente isso, então resolvi postar a receita aqui. Isso pressupõe que ambos os bancos de dados estejam no mesmo servidor.

Primeiro, copie a tabela do banco de dados antigo para o novo banco de dados. Na linha de comando:
pg_dump -U postgres -t <old_table> <old_database> | psql -U postgres -d <new_database>

Em seguida, conceda permissões da tabela copiada ao usuário do novo banco de dados. Entre no psql:
psql -U postgres -d <new_database>

ALTER TABLE <old_table> OWNER TO <new_user>;

\q

Neste ponto, sua tabela copiada em seu novo banco de dados ainda tem o nome <old_table> do seu banco de dados antigo. Supondo que você queira mover os dados para outro lugar, digamos para <new_table> , você pode simplesmente usar consultas SQL regulares:
INSERT INTO <new_table> (field1, field2, field3) 
SELECT field1, field2, field3 from <old_table>;

Feito!