La opción relevante es --locale=locale
a la initdb comando que inicializa su clúster de base de datos. Si no lo proporciona explícitamente, el valor predeterminado es la configuración regional del sistema. (Probablemente ejecute su Ubuntu en la configuración regional 'C').
Lea más sobre esto en el excelente manual aquí .
En PostgreSQL usted puede aún colarse en una base de datos con una configuración regional diferente al basar una nueva base de datos en template0
en lugar del predeterminado templeate1
. Cito el manual aquí
:
Pero prefiero recrear el clúster de la base de datos con la configuración regional deseada. Mucho más limpio.
Editar:información sobre las configuraciones regionales disponibles
Solo puede usar configuraciones regionales proporcionadas por el sistema operativo. Cito el manual aquí :
Mire locale-gen
en un sistema Unix, si desea utilizar una configuración regional que aún no se ha generado. Lo importante que debe comprender es que se pueden instalar varias configuraciones regionales en su sistema operativo, pero solo se puede elegir una de ellas para parámetros del sistema como LC_CTYPE
, LC_COLLATE
, etc. Mire la salida de locale
versus locale -a
en la concha Por lo general, es el mismo para todos, establecido a través de LC_ALL
.
@David:lo que hiciste puede haber resuelto tu problema, pero podrías haberlo tenido más fácil. Además, tenga en cuenta que la variable de entorno LANG
solo proporciona el predeterminado para todos los ajustes locales. Si alguno de ellos está configurado en algo diferente, LANG
será anulado. Establecer LC_ALL
para anular cualquier configuración existente. Aquí está uno de muchos sitios
en la web con más información al respecto.
Para verificar todas las configuraciones regionales actuales de su base de datos (clúster), ejecute en su base de datos:
SHOW ALL;
O más específicamente:
SELECT *
FROM pg_settings
WHERE name ~~ 'lc%';