Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/11/2007, 16h06   #1
Invité régulier
 
Inscription : mai 2007
Messages : 14
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 14
Points : 8
Points : 8
Par défaut Probleme pg_dump/pg_restore avec contrainte

Bonjour à tous,

Voila mon problème, j'ai actuellement une base postgresql 7.3.2 qui tourne. Je voudrais sauvegarder exactement son état actuel (schéma+data) avant de la modifier.


J'utilise donc pg_dump pour créer une sauvegarde tar de la base.
Mon problème apparaît lors ce que je souhaite restaurer la base grâce a "pg_restore".
En effet un champ possède une contrainte :

Code :
CHECK ((updatedate = ('now'::text)::date))
En clair, il faut que la date insérée soit la date actuelle. Or lors de la restauration, je souhaiterais pouvoir y insérer les anciennes valeurs, puis ensuite activer cette contrainte.


Y-a-t il un moyen de faire cela ?
Je pense à l'option -l ou -L de "pg_restore", mais je ne sais pas comment m'en servir.
Mais je suppose qu'en re-ordonnant les étapes avant de restaurer cela doit être jouable.

Qu'en pensez-vous?

Merci.
Bengo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2007, 10h31   #2
Invité régulier
 
Inscription : mai 2007
Messages : 14
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 14
Points : 8
Points : 8
Bon après divers tests et réflexions, cela me parait fort mal engagé ...

Je me suis mis a éditer le fichier de dump à la main pour faire en toute fin de celui-ci un ALTER de la table en question :

Code :
1
2
ALTER TABLE product 
    ADD CONSTRAINT ckc_updatedate_product CHECK ((updatedate = ('now'::text)::date));

Mais ca ne fonctionne toujours pas lors du pg_restore, car en fait lors de l'ajout d'une contrainte sur une table, Postgresql semble checker que les données vérifient bien la contrainte.

Je vais donc être contraint de modifier toute les valeurs à insérées dans cette colonne pour la passer a la date actuelle.
Vive les regex !!!


Ha moins que quelqu'un est une idée lumineuse bien sur.


Merci
Bengo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h38.


 
 
 
 
Partenaires

Hébergement Web