PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Instalação do PostgreSQL 9.1 e codificação de banco de dados


A opção relevante é --locale=locale para o initdb comando que inicializa seu cluster de banco de dados. Se você não fornecê-lo explicitamente, o padrão será a localidade do sistema. (Você provavelmente executa seu Ubuntu na localidade 'C'.)

Leia mais sobre isso no excelente manual aqui .

No PostgreSQL você pode ainda esgueirar-se em um banco de dados com localidade diferente, baseando um novo banco de dados em template0 em vez do padrão templeate1 . Cito o manual aqui :

Mas prefiro recriar o cluster de banco de dados com a localidade desejada. Muito mais limpo.

Editar:informações sobre localidades disponíveis


Você só pode usar localidades que são fornecidas pelo sistema operacional. Cito o manual aqui :

Veja locale-gen em um sistema Unix, se você quiser usar uma localidade que ainda não foi gerada. O importante a entender é que vários locais podem ser instalados em seu sistema operacional, mas apenas um deles pode ser escolhido para parâmetros do sistema como LC_CTYPE , LC_COLLATE , etc. Veja a saída de locale versus locale -a na casca. Normalmente é o mesmo para todos, definido via LC_ALL .

@David:O que você fez pode ter resolvido seu problema, mas poderia ter sido mais fácil. Além disso, esteja ciente de que a variável de ambiente LANG fornece apenas o padrão para todas as configurações de localidade. Se algum deles estiver definido para algo diferente, LANG será sobrescrito. Definir LC_ALL para substituir qualquer configuração existente. Aqui está um de muitos sites na web falando mais sobre isso.

Para verificar todas as configurações de localidade atuais de seu banco de dados (cluster), execute em seu banco de dados:
SHOW ALL;

Ou mais especificamente:
SELECT *
FROM   pg_settings
WHERE  name ~~ 'lc%';