Съответната опция е --locale=locale
към initdb команда, която инициализира вашия клъстер от база данни. Ако не го предоставите изрично, по подразбиране се използва локалът на системата. (Вероятно стартирате вашия Ubuntu на локал 'C'.)
Прочетете повече за това в отличното ръководство тук .
В PostgreSQL вие можете все още се промъкват в база данни с различен локал, като базират нова база данни от template0
вместо templeate1
по подразбиране . Цитирам ръководството тук
:
Но предпочитам да пресъздам клъстера на базата данни с желания локал. Много по-чист.
Редактиране:информация за наличните локали
Можете само да използвате локали, предоставени от операционната система. Цитирам ръководството тук :
Вижте locale-gen
в Unix-система, ако искате да използвате локал, който все още не е генериран. Важното е да разберете, че във вашата операционна система могат да бъдат инсталирани множество локали, но само един от тях може да бъде избран за системни параметри като LC_CTYPE
, LC_COLLATE
и т.н. Вижте изхода на locale
спрямо locale -a
в черупката. Обикновено е еднакъв за всички, задава се чрез LC_ALL
.
@David:Това, което направихте, може да е решило проблема ви, но можеше да го направите по-лесно. Също така имайте предвид, че променливата на средата LANG
предоставя само по подразбиране за всички локални настройки. Ако някой от тях е настроен на нещо различно, LANG
ще бъдат отменени. Задайте LC_ALL
за да замените всяка съществуваща настройка. Ето един на много сайтове
в мрежата, като ви кажа повече за това.
За да проверите всички текущи локални настройки на вашата база данни (клъстер), стартирайте във вашата база данни:
SHOW ALL;
Или по-конкретно:
SELECT *
FROM pg_settings
WHERE name ~~ 'lc%';