PostgreSQL

Como criar uma base de dados UTF8 em um servidor em LATIN1 ou como criar uma base de dados LATIN1 em um servidor em UTF8?

O PostgreSQL tem dessas coisas. Ele não permite que se crie Bases de Dados com Encoding diferentes em um mesmo template.
Hoje tentei criar uma nova base de dados em UTF8 e me deparei com o seguinte:

bash-4.1$ psql
psql (9.3.5)
Digite "help" para ajuda.

postgres=# CREATE DATABASE teste WITH ENCODING='UTF8';
ERRO:  codificação "UTF8" não corresponde a configuração regional "pt_BR.iso88591"
DETALHE:  A definição de LC_TYPE escolhida requer codificação "LATIN1".
postgres=#

Isso acontece porque o locale do S.O. está em latin1 e quando foi instalado o PostgreSQL ele absorve esta configuração.
Quando tentei instalar em um encoding diferente do padrão definido ele reclamou por não estar de acordo com o template padrão que é o template1.

Para conseguir criar uma base em um encoding diferente é necessário utilizar um outro template e no meu caso utilizei o template0.

postgres=# CREATE DATABASE posts WITH ENCODING='UTF8' LC_COLLATE='en_US.utf8' LC_CTYPE='en_US.utf8' TEMPLATE=template0;
CREATE DATABASE
postgres=#

O mesmo pode ser feito quando o locale do sistema está em UTF8 e se deseja criar uma base em LATIN1.

Espero ter ajudado.

2 respostas a “Criando base de dados no PostgreSQL com encoding diferente”

  1. Avatar de JOSE
    JOSE

    DEBERIAS DE PONER UN EJEMPLO DE UTF8 A LATIN1

    1. Avatar de Marcos Regis
      Marcos Regis

      El proceso es similar. Sólo tiene que cambiar la codificación de origen y la de destino.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

Blog do Regis - Meus aprendizados
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.