Det relevanta alternativet är --locale=locale
till initdb kommando som initierar ditt databaskluster. Om du inte anger det uttryckligen, används det som standard till systemets språk. (Du kör förmodligen din Ubuntu på lokalen 'C'.)
Läs mer om det i den utmärkta manualen här .
I PostgreSQL kan smyg fortfarande in en databas med annan lokalitet genom att basera en ny databas på template0
istället för standard templeate1
. Jag citerar manualen här
:
Men jag skulle hellre återskapa databasklustret med önskad plats. Mycket renare.
Redigera:information om tillgängliga språk
Du kan bara använda platser som tillhandahålls av operativsystemet. Jag citerar manualen här :
Titta på locale-gen
i ett Unix-system, om du vill använda en lokalitet som ännu inte har genererats. Det viktiga att förstå är att flera lokaler kan installeras i ditt operativsystem, men endast en av dem kan väljas för systemparametrar som LC_CTYPE
, LC_COLLATE
, etc. Titta på utdata från locale
kontra locale -a
i skalet. Vanligtvis är det samma för alla, ställ in via LC_ALL
.
@David:Det du gjorde kan ha löst ditt problem, men du kunde ha haft det lättare. Tänk också på att miljövariabeln LANG
tillhandahåller endast standard för alla språkinställningar. Om någon av dem är inställd på något annat, LANG
kommer att åsidosättas. Ställ in LC_ALL
för att åsidosätta alla befintliga inställningar. Här är en av många webbplatser
på webben som berättar mer om det.
För att kontrollera alla aktuella språkinställningar för din databas (kluster), kör i din databas:
SHOW ALL;
Eller mer specifikt:
SELECT *
FROM pg_settings
WHERE name ~~ 'lc%';