PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 31/05/2012 17:23:57

brse
Membre

pg_dump, pg_restore sur schema différent

Bonjour,

Le sujet a peut être déjà été traité mais je n'ai rien trouvé.


Je fais un dump comme ci-dessous de l'un de mes schéma de ma base et je souhaite le réimporté sur un autre schéma (faire une duplication du schéma en gros). Sauf que dans mon dump, j'ai le nom de mon schéma avant mes tables et du coup l'import dans mon nouveau shéma ne fonctionne pas.


pg_dump -h localhost -p 5432 -U postgres -f EXPORT_FILENAME.dmp -Fc -x -O -n MON_SCHEMA MA_BASE

pg_restore -h localhost -p 5432 -U postgres -d MA_BASE -x -n MON_NOUVEAU_SCHEMA EXPORT_FILENAME.dmp


Il me faudrait soit qu'il n'y ai pas le nom de mon schéma dans mon dump, soit que je puisse dire d'importer le premier schéma dans le deuxième (comme sous Oracle FROMUSER=.... TOUSER=.... avec la fonction imp).


Connaissez-vous quelques chose pour ce problème


Précision : dans mon cas c'est sur la même base de données mais en réalité le dump viendra d'un schéma x d'une base vers un schéma y d'une autre base


Merci

Dernière modification par brse (31/05/2012 17:38:56)

Hors ligne

#2 31/05/2012 17:44:43

rjuju
Administrateur

Re : pg_dump, pg_restore sur schema différent

Bonjour,
il n'y a pas de solution toute faite.
Si vous faîtes le dump en mode plain, vous pouvez éditer votre fichier pour modifier le nom du schéma.
Le dump commence par créer le schéma, puis faire un set search_path sur ce schéma, la modification est donc très rapide.

En custom, si vous en avez la possibilité vous pouvez renommer votre schéma avant de le dumper, sinon le réimporter sur une autre base, le renommer et le redumper.

Dernière modification par rjuju (31/05/2012 17:48:07)

Hors ligne

#3 31/05/2012 17:48:39

brse
Membre

Re : pg_dump, pg_restore sur schema différent

rjuju a écrit :

Si vous faîtes le dump en mode plain, vous pouvez éditer votre fichier pour modifier le nom du schéma.

Est-il possible du ne pas faire le dump en mode plein, c'est à dire en demandant d'exporter le schéma x mais sans mettre le nom du schéma dans le fichier ?

Hors ligne

#4 31/05/2012 18:03:12

rjuju
Administrateur

Re : pg_dump, pg_restore sur schema différent

Non, car l'outil n'est pas prévu pour ça.
Si la fichier est très volumineux, vous pouvez faire un mix avec un dump -s (uniquement la structure) pour modifier facilement le nom du schéma, et ensuite faire une procédure stockée qui copiera toutes les tables par des requêtes sql.

Hors ligne

Pied de page des forums