Postgresql 9.2 "nome locale non valido" su Ubuntu 12.04


9

Oggi ho installato Postgresql 9.2 su Ubuntu preciso tramite apt.postgresql.org - tutto era relativamente indolore fino a quando non mi sono bloccato in un errore "nome locale non valido: 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"

Ho corso locale-gen it_IT.utf8però, e in effetti:

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

I registri non sembrano avere informazioni significative sul perché Postgres non lo riconosca_IT.utf8 ... puoi aiutarmi?

Risposte:


20

Se PostgreSQL non è stato riavviato dopo la creazione della nuova locale, questo sarebbe il motivo. service postgresql restartdovrebbe bastare.

Ciò è presumibilmente dovuto al modo in cui i locali sono implementati in Linux libc. Le nuove versioni locali non vengono importate senza problemi nell'ambiente di processi già in esecuzione.


Questa è una soluzione molto meno brutale della mia :)
giorgiga,

0

local-gen non ha funzionato nel mio caso.

Ho installato la locale mancante con questo:

dpkg-reconfigure locales

Quindi ha mostrato in locale -a:

locale -a

E quindi riavviare postgresql:

service postgresql restart
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.