20 votes

Comment sauvegarder/restaurer une base de données Rails avec Postgres ?

Je fais ce qui suit sur mon serveur :

 pg_dump -O -c register_production > register.sql

Ensuite, après avoir copié register.sql dans mon environnement local, j'essaie :

 psql register_development < register.sql

Cela semble fonctionner, mais lorsque j'essaie de lancer le site Rails localement, j'obtiens ceci :

 PG::UndefinedTable: ERROR:  relation "list_items" does not exist at character 28

Comment puis-je restaurer tout (y compris les relations) de la base de données du serveur vers ma base de données locale de développement ?

68voto

Veraticus Points 10078

J'utilise cette commande pour sauvegarder ma base de données :

pg_dump -F c -v -U postgres -h localhost <database_name> -f /tmp/<filename>.psql

Et ceci pour le restaurer :

pg_restore -c -C -F c -v -U postgres /tmp/<filename>.psql

Ceci vide la base de données dans le format personnalisé de Postgres ( -F c ) qui est compressé par défaut et permet de réordonner son contenu. -C -c va supprimer la base de données si elle existe déjà et la recréer, ce qui est utile dans votre cas. Et -v spécifie "verbose" pour que vous puissiez voir exactement ce qui se passe quand cela se passe.

1voto

Bob Gilmore Points 2161

Est-ce que la base de données register_development existe avant d'exécuter le psql commande ? Parce que ce formulaire ne la créera pas pour vous.

Voir http://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP-RESTORE pour plus d'informations.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X