2011-12-02 12 views
19

Quindi sto camminando attraverso il tutorial GeoDjango e io sono bloccato su questo messaggio di errore:Change LC_CTYPE per PostgreSQL e PostGIS usa

[email protected]:~$ createdb -E UTF8 template_postgis 
createdb: database creation failed: ERROR: encoding UTF8 does not match locale en_US 
DETAIL: The chosen LC_CTYPE setting requires encoding LATIN1. 

Googled e leggere alcuni documenti di Ubuntu, ma senza alcun risultato. Qualsiasi intuizione sarebbe molto apprezzata!

Sto usando il Vagrant Box lucid 32 predefinito, per testare la mia configurazione.

risposta

13

È meglio specificare solo le impostazioni internazionali per il database e fare in modo che la codifica venga visualizzata da quella. Quindi usare qualcosa come

createdb --locale=en_US.utf8 template_postgis 
+13

Quello che in realtà finito per fare è createdb -E UTF8 -T template0 --locale = en_US.utf8 template_postgis –

+0

'--locale = en_US.UTF-8' per quanto riguarda PostgreSQL 9.4.5 –

2

È necessario impostare le impostazioni locali del sistema operativo su qualsiasi locale utf8 compatibile. Esegui locale -a per ottenere un elenco di impostazioni locali che è possibile utilizzare, quindi fai qualcosa come update-locale LANG=en_US.utf8, sostituendo en_US.utf8 con qualsiasi locale tu voglia.

4

Else, provate questo quando si accede a PostgreSQL:

create database databse_name with owner database_owner encoding='UTF-8'lc_collate='en_US.utf8' lc_ctype='en_US.utf8' template template0; 
+1

più 1 per aggiungendo template0 – Erik

9

Sono necessari sia -E UTF8 che --locale = en_US.utf8

$ createdb -E UTF8 -T template0 --locale=en_US.utf8 template_postgis 
Problemi correlati