Odpowiednia opcja to --locale=locale do initdb polecenie, które inicjuje klaster bazy danych. Jeśli nie podasz go jawnie, domyślnie będą to ustawienia regionalne systemu. (Prawdopodobnie używasz Ubuntu w lokalizacji 'C'.)
Przeczytaj więcej na ten temat w doskonałej instrukcji tutaj .
W PostgreSQL możesz nadal wkradać się do bazy danych z inną lokalizacją, opierając nową bazę danych na template0 zamiast domyślnego templeate1 . Cytuję podręcznik
:
Ale wolałbym odtworzyć klaster bazy danych z żądanymi ustawieniami regionalnymi. Dużo czystsze.
Edytuj:informacje o dostępnych lokalizacjach
Możesz tylko używać ustawienia regionalne dostarczane przez system operacyjny. Cytuję podręcznik :
Spójrz na locale-gen w systemie Unix, jeśli chcesz użyć ustawień regionalnych, które nie zostały jeszcze wygenerowane. Ważną rzeczą do zrozumienia jest to, że w systemie operacyjnym można zainstalować wiele lokalizacji, ale tylko jeden z nich może zostać wybrany dla parametrów systemowych, takich jak LC_CTYPE , LC_COLLATE itd. Spójrz na wynik locale kontra locale -a w powłoce. Zwykle jest taki sam dla wszystkich, ustawiany przez LC_ALL .
@David:To, co zrobiłeś, mogło rozwiązać Twój problem, ale mogłeś to zrobić łatwiej. Należy również pamiętać, że zmienna środowiskowa LANG zapewnia tylko domyślną dla wszystkich ustawień regionalnych. Jeśli któryś z nich jest ustawiony na coś innego, LANG zostanie zastąpiony. Ustaw LC_ALL aby zastąpić wszelkie istniejące ustawienia. Oto jeden wielu witryn
w sieci, aby dowiedzieć się więcej na ten temat.
Aby sprawdzić wszystkie aktualne ustawienia regionalne bazy danych (klastra), uruchom w swojej bazie danych:
SHOW ALL;
A dokładniej:
SELECT *
FROM pg_settings
WHERE name ~~ 'lc%';