Postgresql 9.2 "Ungültiger Gebietsschemaname" unter Ubuntu 12.04

8

Heute habe ich Postgresql 9.2 präzise über apt.postgresql.org auf Ubuntu installiert - alles war relativ schmerzlos, bis ich in einem "ungültigen Gebietsschemanamen: it_IT.utf8" feststeckte. Fehler:

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"

Ich bin aber gelaufen locale-gen it_IT.utf8und tatsächlich:

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

Protokolle scheinen keine aussagekräftigen Informationen darüber zu enthalten, warum postgres it_IT.utf8 nicht erkennt ... können Sie helfen?

Giorgiga
quelle

Antworten:

19

Wenn PostgreSQL nach dem Erstellen des neuen Gebietsschemas nicht neu gestartet wurde, ist dies der Grund. service postgresql restartsollte ausreichen.

Dies liegt vermutlich daran, wie Gebietsschemas unter Linux implementiert sind libc. Die neuen Gebietsschemas werden nicht nahtlos in die Umgebung bereits laufender Prozesse importiert.

Daniel Vérité
quelle
Dies ist viel weniger brutale Lösung als meine :)
Giorgiga
0

local-gen hat in meinem Fall nicht funktioniert.

Ich habe das fehlende Gebietsschema folgendermaßen installiert:

dpkg-reconfigure locales

Dann zeigte es in locale -a:

locale -a

Und dann postgresql neu starten:

service postgresql restart
Wadih M.
quelle