Je devais juste faire cette chose exacte, alors j'ai pensé que je posterais la recette ici. Cela suppose que les deux bases de données se trouvent sur le même serveur.
Tout d'abord, copiez la table de l'ancienne base de données vers la nouvelle base de données. En ligne de commande :
pg_dump -U postgres -t <old_table> <old_database> | psql -U postgres -d <new_database>
Ensuite, accordez les autorisations de la table copiée à l'utilisateur de la nouvelle base de données. Connectez-vous à psql :
psql -U postgres -d <new_database>
ALTER TABLE <old_table> OWNER TO <new_user>;
\q
À ce stade, votre table copiée dans votre nouvelle base de données porte toujours le nom <old_table>
de votre ancienne base de données. En supposant que vous souhaitiez déplacer les données ailleurs, dites à <new_table>
, vous pouvez simplement utiliser des requêtes SQL classiques :
INSERT INTO <new_table> (field1, field2, field3)
SELECT field1, field2, field3 from <old_table>;
Terminé !