je sais... il est toujours mieux de faire un backup de la DB dans son entièreté. C'est d'ailleurs ce que je recommande en général, cependant, il y a toujours des cas particulier.
Introduction
Voila, j'ai fait plusieurs update foireux dans la table des fournisseurs sur mon environnement de développement. J'aurais bien besoin de restaurer les données de cette table depuis le serveur de production... mais je ne voudrais pas restaurer toute la DB maintenant.
La solution
- Faire un backup de la table depuis le serveur avec pg_dump --> fichier de backup sql
- Renommer la table sur le serveur local (vaut mieux pas l'effacer trop vite)
- Restaurer le fichier de backup sur la db locale avec l'outil psql
pg_dump.exe --host adresse_du_serveur --port 5432 --username nom_utilisateur --format plain --ignore-version --verbose --file "nom_du_fichier_de_backup_sql" --table public._nom_de_la_table base_de_donnee
Exemple pratique
pg_dump.exe --host 192.168.1.205 --port 5432 --username postgres --format plain --ignore-version --verbose --file "C:\temp\supplier.backup" --table public.file0020 stockprod
Restaurer les données
N'oubliez pas renommer la table (vous pouvez le faire avec pgAdmin III , via les propriétés de la table)
psql -h adresse_serveur_local -p 5432 -U nom_utilisateur -d base_de_donnée -a -f nom_du_fichier_de_backup_sql
Exemple pratique
cd c:\temp\
psql -h localhost -p 5432 -U postgres -d stockdev -a -f suppliers.bakup
Aucun commentaire:
Enregistrer un commentaire