Atualizando PostgreSQL-8.4 para PostgreSQL 9.1 no Debian

image_pdfimage_print

Para aqueles que fizeram upgrade da versão Debian 6.0 Squeeze para a versão Debian 7.0 Wheezy, assim como aqueles que precisam efetuar a atualização do PostgreSQL-8.4 para PostgreSQL-9.1 utilizando sistemas de pacote .deb, devem ter percebido que o atualizador mantém a antiga versão, assim como instala a nova, abre um nova porta não padrão para que a nova versão do PostgreSQL recebeba/escute por novas comunicação e da mesma forma, não efetua a migração dos dados da versão anterior para a nova conforme esperado e desejado na maioria dos casos.

O primeiro passo para fazer esta migração/atualização de forma completa, é infelizmente manualmente, pondo a mão na massa. Abaixo as principais etapas para que consiga efetuar com sucesso esta operação.

Inicialmente, como root, acesse o usuário postgres:

su - postgres

Em seguida, efetue o backup / exportação de todas as bases de dados existentes na antiga versão do PostgreSQL, no caso, a 8.4:

pg_dumpall > dump.sql

Salve uma cópia dos arquivos de configuração do PostgreSQL que precisar para efetuar a comparação das configurações que precisam ser alteradas na próxima versão. Estes arquivos em geral ficam em /etc/postgresql/VERSAO/.

Faça um cópia do arquivo /etc/postgresql/8.4/main/pg_hba.conf e /etc/postgresql/9.1/main/pg_hba.conf.

Saia do usuário postgres

exit

Agora que retornou ao usuário root, execute:

cp ~postgres/dump.sql /root/

Agora poderá remover com segurança o PostgreSQL8.4 e instalar a versão 9.1 do banco de dados.

aptitude purge postgresql-8.4
aptitude install postgresql-9.1

Efetue as alterações de configuração que precisar em /etc/postgresql/9.1/main. Caso tenha efetuado qualquer alteração, será necessário reinicializar o banco de dados PostgreSQL.

/etc/init.d/postgresql restart.

Agora o Postgresql 9.1 deverá estar rodando. Vamos importar as bases de dados.

su - postgres
psql < dump.sql

Caso a versão 8.4 e 9.1 tenham coexistido, ainda será necessário ir no arquivo /etc/postgresql/9.1/main/postgresql.conf e mudar a porta para 5432 se for no Debian 7. Esta alteração da porta padrão foi efetuada pelos administradores do pacote para evitar incompatibilidade no upgrade de versão.

Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!