Criar e configurar banco de dados PostgreSQL com locale pt_BR e UTF-8
O servidor de Postgre banco de dados utiliza o Locales disponibilizados pelo sistema operacional para representar caracteres, símbolos e características de linguagem na criação e gerenciamento dos bancos. Ao configurar corretamente o locale pt_BR no PostgreSQL, é possível garantir que os dados sejam tratados conforme as convenções de idioma e regionalização adequadas, como ordenação e formatação de datas.
Dessa forma, o objetivo deste post é detalhar um pouco a relação entre o PostgreSQL e Locales.
Veja a seguir quais os impactos do locale em servidores PostgreSQL.
Impactos do Locale pt_br 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 o 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.
- 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 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.
Finalizado! Agora você já está apto a criar bancos de dados PostgreSQL Locale pt_BR.UTF-8.
Confira também 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.