Mudando encoding do Postgres 8/9 para LATIN1

Alterando o encoding do Postgres 8.4 e do 9.1, que por padrão é UTF-8, para LATIN1.
Testado em CentOS 6 e Rad Hat Enterprise 6.

1º – Fazer backup das bases.

2º – Fazer backup dos arquivos “.conf”:

# cd /var/lib/pgsql/data
# cp -a pg_hba.conf postgresql.conf ../backups

3º – Parar o banco:

# /etc/init.d/postgresql stop

4º – Remover o conteúdo da pasta data:

# cd /var/lib/pgsql/
# rm -rf data/*

* Obs.: Muito cuidado com este comando!

5º – Recriar o data:

$ su postgres
# env LANG=LATIN1 /usr/bin/initdb --locale=pt_BR.iso88591 --encoding=LATIN1 -D /var/lib/pgsql/data/

6º – Retornar com os “.conf”:

# cd /var/lib/pgsql/backups
# cp -a pg_hba.conf postgresql.conf ../data

7º – Restartar o Postgres:

# /etc/init.d/postgresql restart

8º – Recriar senha do usuário postgres:

# sudo -u postgres psql
postgres=# alter user postgres with encrypted password 'senha';

9º – Testando:

# psql -h localhost -U postgres 
Senha para usuário postgres:
psql (8.4.9)

Digite "help" para ajuda.
postgres=# \l
                                    Lista dos bancos de dados
   Nome      |   Dono   | Codificação |   Collation    |     Ctype      | Privilégios de acesso
-----------+----------+---------------+----------------+----------------+------------------------
 postgres    | postgres | LATIN1        | pt_BR.iso88591 | pt_BR.iso88591 |
 template0 | postgres | LATIN1        | pt_BR.iso88591 | pt_BR.iso88591 | =c/postgres
                                                                        : postgres=CTc/postgres
 template1 | postgres | LATIN1        | pt_BR.iso88591 | pt_BR.iso88591 | =c/postgres
                                                                        : postgres=CTc/postgres
(3 registros)

postgres=#

* Obs.: Em Debian e derivados, são caminhos diferentes.

http://www.vivaolinux.com.br/dica/Mudando-encoding-do-Postgres-84-para-LATIN1

Esta entrada foi publicada em Banco de dados, Postgresql. Adicione o link permanente aos seus favoritos.

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>