IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

Déplacer ou copier un schéma d'une base à une autre ?


Sujet :

PostgreSQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Décembre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2011
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Déplacer ou copier un schéma d'une base à une autre ?
    Bonjour,

    Débutant sur PosgreSQL/PostGIS (via PG Admin III), je souhaite "copier" des schémas stockés dans mabase1 pour les avoir dans mabase2.

    Comment puis-je m'y prendre ?

    J'ai cherché mais je n'ai pas trouvé de réponse claire à cette question...

    Merci par avance !

  2. #2
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Bonjour,

    Si je comprends bien, vos deux bases sont sur la même instance...
    Il serait possible de "copier" chaque objet un par un avec du SQL... (Vous pouvez générer ce SQL en faisant une requête sur le catalogue, mais il ne faudra rien oublier).
    Vous pouvez aussi exporter les données avec pg_dump, générer le SQL avec pg_restore et faire un global replace du nom du schéma/nom de la base dans le SQL résultant avant de le rejouer sur la base cible... Peut-être faudra-t-il également modifier le search_path avant de lancer le script.

    Cordialement,

    Arkhena
    A bove ante, ab asino retro, a stulto undique caveto

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Décembre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2011
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Merci pour votre réponse.


    Le positif : sur le pc d'une collègue on a sauvegarder le schema via pg_admin (clic droit> sauvegarder) et puis importer la sauvegarde .backup dans la base cible. Niquel ça marche !

    Le négatif : sur le mien impossible de sauvegarder le schéma, avec le message d'erreur suivant :

    C:\Program Files (x86)\pgAdmin III\1.22\pg_dump.exe --host srv-datas --port 5432 --username "postgres" --no-password --format custom --verbose --file "E:\Users\lodestro\Documents\W_DIVERS\INFORMATIQUE\rp2011.backup" --schema "rp2011" "audat"
    pg_dump: server version: 9.6.0; pg_dump version: 9.5.5
    pg_dump: aborting because of server version mismatch

    Le process a retourné le code de sortie 1.

    J'en déduit que ma version de pg_dump n'est pas opérationnelle mais alors comment faire ?

    j'ai tenté d'installer pgadmin 4, la version de pg_dump est plus récente mais la sauvegarde ne fonctionne pas : de message d'erreur mais aucun fichier n'est créé... je suis donc revenu à pgadmin3 avec toujours le même prblème.

  4. #4
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Bonjour,

    Ce n'est pas votre version de pgadmin qui pose problème mais votre version de client postgres. Installez la version 9.6 de PostgreSQL sur votre poste.

    Cordialement,

    Arkhena
    A bove ante, ab asino retro, a stulto undique caveto

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Décembre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2011
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    J'ai installé PostgreSQL 9.6 et effectivement la sauvegarde / restauration de schéma a fonctionné !

    Merci pour votre aide !

    Mais je ne comprend pas pourquoi je dois avoir PostgresSQL sur mon poste et pas uniquement pgadmin pour "piloter" les bases stockées sur le serveur, si vous pouviez m'éclairer...

  6. #6
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    PgAdmin n'est qu'une interface graphique qui repose sur les outils PostgreSQL.
    Lorsque vous faites un dump, ce n'est pas pgAdmin qui réinvente la roue pour faire le dump, il utilise l'utilitaire PostgreSQL de votre poste. Si votre version de PostgerSQL sur votre poste est "en retard" par rapport à la version du serveur, l'outil risque de ne pas fonctionner (problème de compatibilité ascendante).
    Vous trouverez peut-être plus d'informations dans cette section de la doc pgAdmin : https://pgadmin.org/docs4/1.x/backup_and_restore.html

    Bonne journée,

    Arkhena
    A bove ante, ab asino retro, a stulto undique caveto

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Décembre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2011
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Ok merci.

    En fait avant aujourd'hui je n'avais pas PostgreSQL sur mon pc et pgadmin "fonctionnait" (pas complètement vous me direz vu que j'avais ce soucis de sauvegarde / restauration). Et du coup les outils comme dump.exe et restore.exe semblaient indépendants de PostgreSQL (vu qu'ils étaient situés dans le dossier programme de pgadmin) et j'aurais pensé qu'une simple "mise à jour" de ces outils pour correspondre à la version PostgreSQL du serveur aurait suffit.

    Enfin bref maintenant ça marche, merci pour ces précisions.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Rechercher dans une base une base sqlserver avec Control REGEX
    Par souhail72 dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 15/09/2016, 14h28
  2. copier une table d'une base à l'autre
    Par niavlys77 dans le forum Access
    Réponses: 4
    Dernier message: 26/09/2007, 15h57
  3. Réponses: 2
    Dernier message: 24/05/2007, 08h50
  4. Réponses: 2
    Dernier message: 07/05/2007, 12h29
  5. Réponses: 5
    Dernier message: 24/03/2007, 15h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo