Den relevante mulighed er --locale=locale
til initdb kommando som initialiserer din databaseklynge. Hvis du ikke angiver det eksplicit, er det som standard systemets lokalitet. (Du kører sandsynligvis din Ubuntu på lokalitet 'C'.)
Læs mere om det i den fremragende manual her .
I PostgreSQL kan du stadig snige sig ind i en database med en anden lokalitet ved at basere en ny database på template0
i stedet for standard templeate1
. Jeg citerer manualen her
:
Men jeg vil hellere genskabe databaseklyngen med den ønskede lokalitet. Meget renere.
Rediger:info om tilgængelige lokaliteter
Du kan kun bruge lokaliteter, der leveres af operativsystemet. Jeg citerer manualen her :
Se på locale-gen
i et Unix-system, hvis du vil bruge en lokalitet, der endnu ikke er blevet genereret. Det vigtige at forstå er, at flere lokaliteter kan installeres i dit OS, men kun én af dem kan vælges til systemparametre som LC_CTYPE
, LC_COLLATE
, osv. Se på outputtet af locale
versus locale -a
i skallen. Normalt er det ens for alle, indstillet via LC_ALL
.
@David:Det du gjorde, løste måske dit problem, men du kunne have haft det nemmere. Vær også opmærksom på, at miljøvariablen LANG
giver kun standard for alle lokalitetsindstillinger. Hvis nogen af dem er indstillet til noget andet, LANG
vil blive tilsidesat. Indstil LC_ALL
for at tilsidesætte enhver eksisterende indstilling. Her er én af mange websteder
på nettet for at fortælle dig mere om det.
For at kontrollere alle aktuelle lokalitetsindstillinger for din database (klynge), skal du køre i din database:
SHOW ALL;
Eller mere specifikt:
SELECT *
FROM pg_settings
WHERE name ~~ 'lc%';