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 26/12/2010 17:54:05

Epiliptik
Membre

Importer une base de donnée

Bonjour,

Je souhaite importer une base de donnée sur postgresql avec pgadmin3 ou si ce n'est pas possible en ligne de commande (sous windows7) et je ne trouve pas comment faire, il n'y a pas l'air d'avoir cette fonctionalité dans pgadmin3, si quelqu'un peut m'expliquer comment faire.

La base de donnée est un fichier .sql et j'ai deja creer le serveur et un "superutilisateur".

Codrialement.

Hors ligne

#2 26/12/2010 21:41:30

gleu
Administrateur

Re : Importer une base de donnée

Si c'est un fichier SQL, ça ne sera pas avec pgAdmin. Il faut utiliser l'outil psql.


Guillaume.

Hors ligne

#3 27/12/2010 14:32:37

Epiliptik
Membre

Re : Importer une base de donnée

Merci, pourais -tu m'indiquer la commande à executer pour importer la base de donnée?
J'ai essayer pas mal de commande  du style psql -U postgres -f "C:\app.sql" dans le terminal windows dans le repertoire bin de postgresql et ça me renvoie des erreurs ...
Ou si tu as un tuto interessant pour windows, j'ai pas trouvé grand chose sur l'importation de base de donnée.

Hors ligne

#4 27/12/2010 14:45:38

gleu
Administrateur

Re : Importer une base de donnée

C'est bien la bonne commande. Faudrait donner les messages d'erreur pour qu'on en sache un peu plus.


Guillaume.

Hors ligne

#5 27/12/2010 23:34:42

Epiliptik
Membre

Re : Importer une base de donnée

Au debut ça m'affiche
SET
SET
etc..

puis ça m'envoie plein d'erreur du style

ERREUR: la relation "claquette" existe deja
ERREUR: la relation "category" existe deja
ERREUR: le rôle "claquette" n'existe pas

puis à la fin:
REVOKE
REVOKDE
GRANT
GRANT

j'ai l'impression que la base de donnée est mauvaise pourtant elle est censé être bonne :s

Hors ligne

#6 28/12/2010 00:41:48

gleu
Administrateur

Re : Importer une base de donnée

Une base de données n'est ni bonne ni mauvaise. Là, l'erreur que vous attrapez (enfin, d'après les trois messages que vous donnez) indique que le script essaie de créer des tables qui existent déjà. Ce qui laisse supposer que vous essayez de restaurer votre base de données dans une base de données qui contient déjà les objets, ce qui ne peut pas fonctionner.

Commencez plutôt par créer une base de données (avec la commande createdb ou avec pgAdmin), puis lancez la commande psql de restauration en précisant le nom de la nouvelle base. Par exemple :

psql -U postgres -f "C:\app.sql" ma_nouvelle_base

Guillaume.

Hors ligne

#7 30/12/2010 05:14:05

Epiliptik
Membre

Re : Importer une base de donnée

Merci, j'ai recrée une base de donnée et avec cette commande ça à bien marché, il y avait aussi le problème avec claquette, l'utilisateur de la base de donnée n'était pas le même que la mienne, maintenant ça fonctionne smile

j'ai une autre question pour enregistré le resultat de la requete sql j'ai rajouté dans le fichier après la requete:

;\g C:\Users\moi\Desktop

j'ai essayé aussi avec

;\g C:\Users\moi\Desktop\fichier.txt

mais ça n'enregistre pas, dans les 2 cas ça me renvoie C:

permission denied alors que je suis en admin ... et
commande \Users invalide

et si je vais dans le dossier bin et que j'ouvre psql.exe (en admin) dans la console il me demande un mot de passe, j'ai essayer les mot de passe que j'ai mis pour mon utilisateur et ça ne marche pas, y aurait -t-il un mot de passe par defaut? J'ai essayer pas mal de truc sans resultat.

Hors ligne

#8 30/12/2010 09:44:20

gleu
Administrateur

Re : Importer une base de donnée

Vous exécutez le \g avec quoi ? ça ne peut fonctionner qu'avec psql. D'autre part, une commande \ quelque chose ne peut s'exécuter que si le \ est le premier caractère, or je vois un point-virgule devant.

Quant au mot de passe demandé par psql, si vous n'avez pas utilisé l'option -U, psql utilise votre nom d'utilisateur Windows pour se connecter sur PostgreSQL. Par exemple, si je suis connecté en tant qu'utilisateur guillaume et si je fais un "psql b1", il peut me demander un mot de passe correspondant à mon utilisateur guillaume sous PostgreSQL. De toute façon, il vous indique le nom de l'utilisateur qu'il considère. Sous Windows, l'utilisateur postgres a le mot de passe indiqué lors de l'installation. Ensuite, pour les autres utilisateurs que vous pourriez avoir créé, il faut leur ajouter un mot de passe, sinon l'accès ne fonctionnera pas.


Guillaume.

Hors ligne

Pied de page des forums