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%';