Postgresql 9.2 "nome de localidade inválido" no Ubuntu 12.04

9

Hoje eu instalei o Postgresql 9.2 no Ubuntu, precisamente via apt.postgresql.org - tudo foi relativamente simples até ficar preso no erro "nome de localidade inválido: 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"

Eu corri locale-gen it_IT.utf8e, de fato:

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

Os logs não parecem ter nenhuma informação significativa sobre por que o postgres não está reconhecendo o it_IT.utf8 ... você pode ajudar?

giorgiga
fonte

Respostas:

20

Se o PostgreSQL não tiver sido reiniciado após a criação do novo código do idioma, esse seria o motivo. service postgresql restartdeve ser suficiente.

Provavelmente, isso se deve à maneira como as localidades são implementadas no Linux libc. Os novos códigos de idioma não são importados diretamente para o ambiente de processos em execução.

Daniel Vérité
fonte
Isto é muito menos brutal do que a minha solução :)
giorgiga
0

local-gen não funcionou no meu caso.

Eu instalei o código de idioma ausente com isso:

dpkg-reconfigure locales

Então mostrou em locale -a:

locale -a

E, em seguida, reiniciando o postgresql:

service postgresql restart
Wadih M.
fonte