Criando BD utf-8 no PostgreSQL

Para criar um Banco de Dados com codificacao UTF-8 no PostgreSQL, basta executar o Comando Abaixo:

postgres@server ~$ createdb E 'UTF-8' meudb

Se por acaso você recebeu uma mensagem como esta:

createdb: criação do banco de dados falhou: ERRO:  codificação UTF8 não corresponde a configuração regional pt_BR
DETALHE:  A definição de LC_TYPE escolhida requer codificação LATIN1.

Se a mensagem erro acima foi exibido, é necessário reconfigurar o Banco de Dados usando “initdb” para iniciar como “UNICODE”.

  1. Pare o serviço do Postgres:
    # /etc/init.d/postgresql stop
    
  2. Logado com o usuario “postgres”, crie um diretorio onde será armazenado os dados e configurações do Serviço e Bancos de Dadados:
    Logar com o usuário postgres

    # su - postgres

    Fazer o backup do diretorio principal:

    
    $ pgmain=/var/lib/postgresql/9.0/main
    $ mv -v $pgmain $pgmain".bkp"

    Criar um novo diretorio para substituir o antigo:

    $ mkdir $pgmain
    

    Rodar o initdb com as novas configurações:

    $ env LANG=en_US.UTF-8 /usr/lib/postgresql/9.0/bin/initdb --locale=en_US.UTF-8 --encoding=UNICODE -D $pgmain
    
    Observe o "env LANG=en_US.UTF-8" isto var definir o idioma local para "en_US.UTF-8", de forma que o initdb seja executado como o mesmo, permitindo assim a definição de UTF-8.

É isto aí pessoal, espero que tenha sido útil!