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!