Postgresql 9.2 «nom de locale invalide» sur Ubuntu 12.04

9

Aujourd'hui, j'ai installé Postgresql 9.2 sur Ubuntu précis via apt.postgresql.org - tout était relativement indolore jusqu'à ce que je me retrouve coincé dans une erreur "nom de locale invalide: it_IT.utf8":

root@ubuntu:/tmp# sudo -u postgres psql -Xc "CREATE DATABASE test TEMPLATE template0 ENCODING 'utf8' LC_CTYPE='it_IT.utf8'"
ERROR:  invalid locale name: "it_IT.utf8"

J'ai quand même couru locale-gen it_IT.utf8, et en fait:

root@ubuntu:/tmp# locale -a
C
C.UTF-8
en_GB.utf8
en_US.utf8
it_IT.utf8
POSIX

Les journaux ne semblent pas avoir d'informations utiles sur les raisons pour lesquelles postgres ne reconnaît pas it_IT.utf8 ... pouvez-vous aider?

giorgiga
la source

Réponses:

20

Si PostgreSQL n'a pas été redémarré après la création des nouveaux paramètres régionaux, ce serait la raison. service postgresql restartdevrait suffire.

Cela est probablement dû à la façon dont les locales sont implémentées dans Linux libc. Les nouveaux paramètres régionaux ne sont pas importés de manière transparente dans l'environnement des processus déjà en cours d'exécution.

Daniel Vérité
la source
C'est une solution beaucoup moins brutale que la mienne :)
giorgiga
0

local-gen n'a pas fonctionné dans mon cas.

J'ai installé les paramètres régionaux manquants avec ceci:

dpkg-reconfigure locales

Ensuite, il a montré locale -a:

locale -a

Et puis redémarrer postgresql:

service postgresql restart
Wadih M.
la source