|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2009 Messages : 25 ![]() |
Bonjour,
je réalise un dump puis une restauration de schéma spécifique mais je n'arrive pas à recréer la structure du schéma : voici la sauvegarde actuelle : Code :
pg_dump -F c -f "$SAUVBASE\svg_pg.sql" -n public -n journal -U utilisateur bdd
Code :
pg_dump -c -D -f "$SAUVBASE\svg_pg.sql" -n public -U utilisateur bdd
Dans la doc il est marqué que l'option -c permet de recréer la structure que lorsque nous n'avons pas compressé. Comment fait-on dans le cas ou le fichier est compressé ? Puis avant la restauration nous vidons les schémas : Code :
psql bdd -U utilisateur -q -c "DROP SCHEMA IF EXISTS public CASCADE;"
Code :
psql bdd -U utilisateur -q -c "DROP SCHEMA IF EXISTS journal CASCADE;"
Code :
pg_restore -d bdd -U utilisateur "$SAUVBASE\svg_pg.sql"
Point important : entre la sauvegarde et la restauration, la structure du schéma peu bouger donc nous avons besoin de supprimer le schéma (et ces tables) pour restaurer l'ancien (avec ses tables). Auriez-vous une idée de comment m'en sortir ? Merci d'avance |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 1 497 ![]() |
Pourquoi tu ne recrées pas simplement le schéma manuellement avant de le restaurer (CREATE SCHEMA) ?
__________________
La théorie, c'est quand on sait tout mais que rien ne fonctionne. La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi ! Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/ |
|
|
00
|
|
|
#3 | |
|
Invité de passage
![]() Inscription : février 2009 Messages : 25 ![]() |
Bonjour,
Citation:
Si je recrée le schéma, comment je fais pour l'ajout des tables, view, index... ? Car je dois le faire de manière automatique, je ne connais pas la structure de mon schéma et mes tables à l'instant t de la sauvegarde. DD |
|
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Pour ma part, j'utilise la sauvegarde compressée des schémas (option -n) régulièrement, et la première chose que fait la restauration, c'est de recréer le schéma.
Par contre, ce qui est curieux dans votre syntaxe de sauvegarde, c'est que vous mettez 2 fois -n en précisant 2 schémas. Pas sûr que ce soit autorisé (il faudrait vérifier dans la doc de pg_dump). Pour ma part, je fais une sauvegarde propre à chaque schéma. De plus, je mets le nom du schéma entre guillemets. Et ça fonctionne parfaitement.
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#5 | |
![]() ![]() Inscription : octobre 2008 Messages : 1 508 ![]() |
Citation:
Quelle est la source? Quelle est la phrase exacte? |
|
|
|
00
|
|
|
#6 | ||||
|
Invité de passage
![]() Inscription : février 2009 Messages : 25 ![]() |
J'ai je pense enfin trouvé le problème de mon affaire ....
En fait lorsque je réalise un dump du schéma public avec les options -F c (compressé custom) : Code :
pg_dump -F c -f "$SAUVBASE\svg_pg.sql" -n public -U utilisateur bdd
Hors c'était le cas dans mes autres dump : Code :
pg_dump -F c -f "$SAUVBASE\svg_pg.sql" -n archive -U utilisateur bdd
Du coup comme je souhaitai restaurer mon schéma en l'état (celui de la sauvegarde) je réalisai un DROP SCHEMA IF EXISTS archive CASCADE; juste avant... Il y avait donc lors de la restauration : Code :
Lors de la même restauration avec le schéma public : le svg_pg.sql ne contenait pas de CREATE SCHEMA public, il plantait donc lors de la création des tables et autres... Pour contourner le problème j'ai du faire ceci : Code :
Merci d'avance. |
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com