Postgres CPanel LATIN1

24 02 2009

Introdução

Quem já usou postgres juntamente com o CPanel sabe que o suporte que o CPanel oferece é bem fraquinho, tanto que até poucas versões atraz a criação de banco via CPanel estava bugada! ou seja, para se criar banco era necessário usar a boa e velha SQL para criar o banco e dar permissões aos usuários, quanto a isso não há problema algum, o X da questão é que ao se fazer isso todos os benefícios que o CPanel oferece como Backup, Controle de Disco e Permissões de Execução simplesmente não funcionam, e pior quando você vai migrar uma conta entre servidores o o outro o CPanel não copia as bases de dados que são geradas manualmente!

Na versão 11 do Cpanel estes problemas finalmente foram corrigidos mas ai apareceu outro, é como diz meu amigo @lfenciso.

– Se fosse fácil não seria um problema!

Quando você cria um banco Postgres via CPanel o ENCODING do mesmo fica com UTF8 aparentemente não tem como mudar isso! no nosso caso o  sistema roda usando um banco LATIN1 e ai José? Baita problemão.

Solução

Para resolver este problema sem ter que mexer nas configurações do CPanel ou ainda atualizar o sistema fizemos o seguinte:

  1. Criamos o banco com UTF8
  2. Importamos o backup do banco que estava sendo usado pelo cliente que é LATIN1
  3. Como era de se esperar os caracteres com acento por exemplo estavam todos quebrados, para resolver isso:
  4. Na classe que é usada para esabelecer a conexão com o banco de dados dados execute!
  5. SET CLIENT_ENCODING TO ‘LATIN1’

Conclusão

Dessa forma o postgres automatigamente converte tudo o que vai da aplicação para o banco de LATIN1 -> UTF8 e tudo que vem do banco para aplicação de UTF8->LATIN1.

O ideal é sempre ter a aplicação e o banco trabalhando com o mesmo encoding porém no nosso caso isso não era possível então foi necessário o uso deste artifício do postgres.

[]’s Anselmo Battisti

Anúncios

Ações

Information

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




%d blogueiros gostam disto: