PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Trasferisci dati tra database con PostgreSQL

Dovevo solo fare esattamente questa cosa, quindi ho pensato di pubblicare la ricetta qui. Ciò presuppone che entrambi i database si trovino sullo stesso server.

Per prima cosa, copia la tabella dal vecchio db al nuovo db. Alla riga di comando:

pg_dump -U postgres -t <old_table> <old_database> | psql -U postgres -d <new_database>

Quindi, concedere le autorizzazioni della tabella copiata all'utente del nuovo database. Accedi a psql:

psql -U postgres -d <new_database>

ALTER TABLE <old_table> OWNER TO <new_user>;

\q

A questo punto la tabella copiata nel nuovo database ha ancora il nome <old_table> dal tuo vecchio database. Supponendo che tu voglia spostare i dati da qualche altra parte, dì a <new_table> , puoi semplicemente utilizzare le normali query SQL:

INSERT INTO <new_table> (field1, field2, field3) 
SELECT field1, field2, field3 from <old_table>;

Fatto!