PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Installazione di PostgreSQL 9.1 e codifica del database

L'opzione pertinente è --locale=locale a initdb comando che inizializza il cluster di database. Se non lo fornisci in modo esplicito, l'impostazione predefinita è la locale del sistema. (Probabilmente esegui Ubuntu nella locale 'C'.)

Leggi maggiori informazioni nell'eccellente manuale qui .

In PostgreSQL puoi ancora intrufolarsi in un database con locale diverso basando un nuovo database su template0 invece del predefinito templeate1 . Cito il manuale qui :

Ma preferirei ricreare il cluster di database con la locale desiderata. Molto più pulito.

Modifica:informazioni sulle localizzazioni disponibili

Puoi solo utilizzare locali forniti dal sistema operativo. Cito il manuale qui :

Guarda locale-gen in un sistema Unix, se si desidera utilizzare una locale che non è stata ancora generata. La cosa importante da capire è che è possibile installare più locali nel sistema operativo, ma solo uno può essere selezionato per parametri di sistema come LC_CTYPE , LC_COLLATE , ecc. Guarda l'output di locale rispetto a locale -a nel guscio. Solitamente è uguale per tutti, impostabile tramite LC_ALL .

@David:quello che hai fatto potrebbe aver risolto il tuo problema, ma avresti potuto farlo più facilmente. Inoltre, tieni presente che la variabile di ambiente LANG fornisce solo il predefinito per tutte le impostazioni locali. Se qualcuno di essi è impostato su qualcosa di diverso, LANG sarà sovrascritto. Imposta LC_ALL per sovrascrivere qualsiasi impostazione esistente. Ecco uno di molti siti nel Web per dirti di più a riguardo.

Per controllare tutte le impostazioni locali correnti del tuo database (cluster), esegui nel tuo database:

SHOW ALL;

O più precisamente:

SELECT *
FROM   pg_settings
WHERE  name ~~ 'lc%';