L'option pertinente est --locale=locale
à initdb commande qui initialise votre cluster de base de données. Si vous ne le fournissez pas explicitement, il utilise par défaut les paramètres régionaux du système. (Vous exécutez probablement votre Ubuntu sur la locale 'C'.)
Lisez plus d'informations à ce sujet dans l'excellent manuel ici .
Dans PostgreSQL, vous pouvez toujours se faufiler dans une base de données avec des paramètres régionaux différents en basant une nouvelle base de données sur template0
au lieu du templeate1
par défaut . Je cite le manuel ici
:
Mais je préfère recréer le cluster de base de données avec les paramètres régionaux souhaités. Beaucoup plus propre.
Modifier :informations sur les paramètres régionaux disponibles
Vous ne pouvez utiliser locales fournies par le système d'exploitation. Je cite le manuel ici :
Regardez locale-gen
dans un système Unix, si vous souhaitez utiliser une locale qui n'a pas encore été générée. La chose importante à comprendre est que plusieurs paramètres régionaux peuvent être installés dans votre système d'exploitation, mais un seul d'entre eux peut être choisi pour les paramètres système tels que LC_CTYPE
, LC_COLLATE
, etc. Regardez la sortie de locale
versus locale -a
dans la coquille. Habituellement, c'est le même pour tous, défini via LC_ALL
.
@David :Ce que vous avez fait a peut-être résolu votre problème, mais cela aurait pu être plus simple. Sachez également que la variable d'environnement LANG
ne fournit que la valeur par défaut pour tous les paramètres régionaux. Si l'un d'entre eux est défini sur quelque chose de différent, LANG
sera outrepassé. Définir LC_ALL
pour remplacer tout paramètre existant. Voici un de nombreux sites
sur le Web pour vous en dire plus à ce sujet.
Pour vérifier tous les paramètres régionaux actuels de votre base de données (cluster), exécutez dans votre base de données :
SHOW ALL;
Ou plus précisément :
SELECT *
FROM pg_settings
WHERE name ~~ 'lc%';