loader
criar banco de dados postgresql

Criando servidor PostgreSQL configurado em 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 SaveinCloud. 

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.
 
criar banco de dados postgresql
Criar banco de dados Postgresql
 
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:

Locale pt_BR.UTF-8

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 nosso artigo, clique aqui

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.

Configurando Locale para servidor PostgreSQL

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

Confira também em nosso canal do YouTube, como escalar o PostgreSQL com o Auto-Cluster na SaveinCloud.

Se você ainda não é cliente da SaveinCloud aproveite os 14 dias grátis para testar a nossa plataforma.

Todo o conteúdo deste site é de uso exclusivo da SaveInCloud. Proibida reprodução ou utilização a qualquer título, sob as penas da lei. Saveincloud Hospedagem na Internet Ltda – CNPJ 66.925.934/0001-42

Atualização LGPD: Contratos | Políticas