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 19/07/2013 11:22:30

kevin.d
Membre

L'option -C (create) de pg_dump ne fonctionne pas ?

Bonjour,

J'ai un postgresql sur un serveur distant avec des bases de données et un sur mon pc portable, je souhaite importer une base du serveur distant sur mon local

Lorsque j'utilise la commande pg_dump -h serveurdistant -p 5432 -U kevin -C mabase > mabase.sql
J'obtiens bien mon fichier mabase.sql

Ensuite je fais en local psql postgres (base de données) postgres (user) < mabase.sql

Un mot de passe m'est demandé puis l’exécution se lance :

SET
SET
SET
SET
SET
ERREUR: nom de locale invalide : "fr_FR.UTF-8"
ERREUR: la base de données "mabase" n'existe pas
\connect: FATAL: la base de données "test1" n'existe pas

Alors que lorsque j'effectue la même chose avec la base déjà créée tout est ok.

Auriez vous une idée ?

Cordialement

Hors ligne

#2 19/07/2013 14:59:06

gleu
Administrateur

Re : L'option -C (create) de pg_dump ne fonctionne pas ?

La première erreur indique que la locale fr_FR.UTF-8 est invalide. Est-elle présente sur votre système ?

Hors ligne

#3 19/07/2013 15:49:40

kevin.d
Membre

Re : L'option -C (create) de pg_dump ne fonctionne pas ?

Ayant des connexions (via pgAdmin) vers des bases distantes où les LC_COLLATE et LC_CTYPE sont définis : fr_FR.UTF-8, je dirais que oui.

Hors ligne

#4 19/07/2013 16:14:05

gleu
Administrateur

Re : L'option -C (create) de pg_dump ne fonctionne pas ?

Il faudrait récupérer la requête qui utilise la locale et l'exécuter, voir ce qui en résulte. Si'il y a une erreur, merci de coller la requête ici avec le message d'erreur complet.

Hors ligne

#5 19/07/2013 16:29:02

kevin.d
Membre

Re : L'option -C (create) de pg_dump ne fonctionne pas ?

Veuillez excuser mon ignorance mais de quelle requête parlez vous ?

Hors ligne

#6 19/07/2013 16:44:10

rjuju
Administrateur

Re : L'option -C (create) de pg_dump ne fonctionne pas ?

La requête contenue dans le script mabase.sql. Vous devriez trouver les requêtes en erreur dans vos log postgres, ou sinon la 6ème requête de ce script il semblerait.

Hors ligne

#7 19/07/2013 16:50:05

kevin.d
Membre

Re : L'option -C (create) de pg_dump ne fonctionne pas ?

CREATE DATABASE test1 WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'fr_FR.UTF-8' LC_CTYPE = 'fr_FR.UTF-8';

ERREUR:  nom de locale invalide : « fr_FR.UTF-8 »

********** Erreur **********

ERREUR: nom de locale invalide : « fr_FR.UTF-8 »
État SQL :42809

Hors ligne

#8 19/07/2013 17:16:01

rjuju
Administrateur

Re : L'option -C (create) de pg_dump ne fonctionne pas ?

Il semble bien que le serveur ne connaisse pas cette locale. Que renvoie un "psql -c "\l" sur le serveur sur lequel vous essayez de restaurer la base ?

Hors ligne

#9 23/07/2013 14:03:23

kevin.d
Membre

Re : L'option -C (create) de pg_dump ne fonctionne pas ?

Bonjour,

Désolé du retard je n'ai pas eu accès au poste depuis ce vendredi, je vous colle le résultat de cette commande.

   Name    |  Owner   | Encoding |      Collate       |       Ctype        |   Access privileges
-----------+----------+----------+--------------------+--------------------+----
-------------------
postgres  | postgres | UTF8     | French_France.1252 | French_France.1252 |
support   | postgres | UTF8     | French_France.1252 | French_France.1252 |
template0 | postgres | UTF8     | French_France.1252 | French_France.1252 | =c/
postgres          +
           |          |          |                    |                    | postgres=CTc/postgres
template1 | postgres | UTF8     | French_France.1252 | French_France.1252 | =c/
postgres          +
           |          |          |                    |                    | postgres=CTc/postgres
(4 rows)

Il semblerait en effet que cette locale ne soit pas connue, mais que faire ?

Hors ligne

#10 23/07/2013 16:16:34

rjuju
Administrateur

Re : L'option -C (create) de pg_dump ne fonctionne pas ?

Vous avez sauvegardé la base sur un serveur linux et l'importez sur un serveur windows ? Le plus simple serait de faire la sauvegarde sans l'option -C, et de créer la base manuellement avec les collations propres à window, ou de les modifier dans votre script sql.

Hors ligne

#11 29/07/2013 16:12:12

kevin.d
Membre

Re : L'option -C (create) de pg_dump ne fonctionne pas ?

Bonjour,

Désolé pour le retard, je vous remercie pour les différents tests, j'avais en effet opté pour cette solution, mais ça ne répondait malheureusement pas à l'interrogation.

Bref, vous me direz le résultat est là c'est l'essentiel.

Bonne journée et encore merci.

Hors ligne

Pied de page des forums