PostgreSQL - Bancos com diferentes encodings
Dica publicada em Banco de Dados / Postgres
PostgreSQL - Bancos com diferentes encodings
Pra quem está enfrentado problemas em relação ao encoding dos bancos no SGBD PostgreSQL, aqui vai a solução pra resolver isso:
1. Faça backup dos seus bancos.
2. Remova o cluster atual com o comando:
# pg_dropcluster --stop VERSÃO.POSTGRESQL main
3. Crie um novo cluster com o seguinte comando:
# pg_createcluster --locale=POSIX VERSÃO.POSTGRESQL main
4. Reinicie o daemon do PostgreSQL.
5. Acesse o terminal interativo do psql e crie a estrutura para seus bancos da seguinte forma:
1. Para criar bancos em UTF8:
psql> CREATE DATABASE nome_do_banco ENCODING 'UTF-8' LC_CTYPE 'pt_BR.UTF-8' TEMPLATE template0;
2. Para criar bancos em LATIN1:
psql> CREATE DATABASE nome_do_banco ENCODING 'ISO8859-1' LC_CTYPE 'pt_BR.ISO8859-1' TEMPLATE template0;
Pronto, agora é só restaurar seus backups numa boa, já que seu servidor PostgreSQL agora aceita vários encodings, sem que se precise realizar alterações mirabolantes nas configurações de sua distribuição.
Falou!
1. Faça backup dos seus bancos.
2. Remova o cluster atual com o comando:
# pg_dropcluster --stop VERSÃO.POSTGRESQL main
3. Crie um novo cluster com o seguinte comando:
# pg_createcluster --locale=POSIX VERSÃO.POSTGRESQL main
4. Reinicie o daemon do PostgreSQL.
5. Acesse o terminal interativo do psql e crie a estrutura para seus bancos da seguinte forma:
1. Para criar bancos em UTF8:
psql> CREATE DATABASE nome_do_banco ENCODING 'UTF-8' LC_CTYPE 'pt_BR.UTF-8' TEMPLATE template0;
2. Para criar bancos em LATIN1:
psql> CREATE DATABASE nome_do_banco ENCODING 'ISO8859-1' LC_CTYPE 'pt_BR.ISO8859-1' TEMPLATE template0;
Pronto, agora é só restaurar seus backups numa boa, já que seu servidor PostgreSQL agora aceita vários encodings, sem que se precise realizar alterações mirabolantes nas configurações de sua distribuição.
Falou!