loader

Como criar bancos de dados PostgreSQL com pt_BR e UTF-8

 

O servidor de banco de dados PostgreSQL utiliza o Locales disponibilizados pelo sistema operacional para representar caracteres, símbolos e características de linguagem na criação e gerenciamento dos bancos.

Como vimos anteriormente no post Configurando Locales para os containers hospedados na Jelastic pode ser necessário executar a alteração do Locale do container para evitar alguns problemas e o mesmo se aplica a servidores PostgreSQL, dessa forma o objetivo deste post é detalhar um pouco mais a relação entre o PostgreSQL e Locales.

Veja a seguir quais os impactos do Locale em servidores PostgreSQL.

 

Impactos do Locale em servidores PostgreSQL

 

  • Ordem de classificação em consultas usando ORDER BY ou os operadores de comparação padrão em dados textuais;
  • As funções upper, lower e initcap;
  • Operadores de correspondência de padrão (LIKE, SIMILAR TO, e expressões regulares POSIX-style). Locales afetam a correspondência tanto de letras maiúsculas quanto minúsculas e a classificação de caracteres por expressões regulares de classe de caracteres;
  • A função to_char e sua família;
  • A habilidade de utilizar indíces com cláusulas LIKE.

Dentre esses problemas citados um dos mais comuns ocorre na criação de um novo banco de dados utilizando um Locale que não está instalado no servidor. Para demonstrar este cenário executamos a criação de um banco de dados no PostgreSQL com 0 Locale pt_BR.UTF-8 em um servidor onde este Locale não está instalado.

 

Criando banco de dados com phpPgAdmin

 

Para realizarmos este teste iremos utilizar a ferramenta de administração phpPgAdmin disponibilizada na criação do container PostgreSQL na plataforma Jelastic. Portanto se você ainda não é cadastrado aproveite os 14 dias grátis que oferecemos para testes clicando no botão abaixo.

 
De posse dos dados de acesso ao servidor PostgreSQL iremos acessar o endereço do phpPgAdmin e clicar na opção “Create database” e então será exibida uma tela semelhante a da imagem a seguir.
 
 
Iremos preencher os seguintes campos:
  • Name: teste;
  • Template: selecionar template0;
  • Encoding: UTF8;
  • Collation: nosso Locale (pt_BR.UTF-8);
  • Character Type / Comment: opcional, neste caso deixaremos ambos vázios.

No cenário testado o Locale pt_BR.UTF-8 não está instalado no servidor, portanto ao tentar criar este banco de dados será exibido o seguinte erro:

Por conseguinte, para solucionar este problema e criar o banco de dados com o Locale necessário (em nosso caso pt_BR.UTF-8) será necessário executar alguns passos que estão detalhados na próxima sessão.

 

Configurando Locale para servidor PostgreSQL

 

Para conseguirmos criar um banco de dados com o Locale pt_BR.UTF-8 é necessário instalar este Locale no container Linux, para isso basta seguir os passos detalhados no artigo Configurando Locales.

Após finalizar o processo anterior é necessário reiniciar o servidor de banco de dados PostgreSQL, caso não saiba como fazer isso basta conferir o artigo em que explicamos o funcionamento básico de nossa plataforma acessando o seguinte link Iniciando Com a Jelastic.

Por fim, ao realizar novamente o processo de criação de um novo banco de dados pt_BR.UTF-8 o banco será criado normalmente e será exibido do lado esquerdo do painel phpPgAdmin de forma semelhante ao exibido na imagem a seguir.

Finalizado! Agora você já está apto a executar a criação de bancos de dados no PostgreSQL com o Locale pt_BR.UTF-8.

Se você ainda não é cliente da Save In Cloud aproveite os 14 dias grátis que oferecemos para testar a nossa plataforma, para isso basta clicar no botão abaixo e realizar o seu cadastro.

Deixe uma resposta

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

Open chat