Qual é a maneira recomendada de executar uma atualização secundária do PostgreSQL, por exemplo, 9.3.0 para 9.3.1 usando o instalador do Windows criado pelo Enterprise DB? Devo desinstalar primeiro ou apenas instalar sobre a instalação existente?
A instalação atual foi realizada com postgresql-9.3.0-1-windows-x64.exe. Agora eu quero atualizar usando postgresql-9.3.1-1-windows-x64.exe.
No Windows, basta parar o serviço postgresql e executar postgresql-9.3.1-1-windows-x64.exe sobre o 9.3.0 existente. Não é necessário desinstalar. Claro, um backup é recomendado.
A documentação clara e explícita para o procedimento de atualização no Windows está ausente. Observe que o link da documentação fornecido por @dezso foi movido no manual atual para: https://www.postgresql.org/docs/current/static/upgrading.html
As notas de versão do PostgreSQL geralmente documentam dicas de migração no Apêndice E. Por exemplo,
A melhor fonte de informações do instalador do Windows foram os fóruns Enterprise DB. Aqui estão algumas postagens que encontrei que abordavam a questão ...
As informações de atualização se movem de lançamento para lançamento. Por exemplo,
A partir de junho de 2017, EnterpriseDB substituiu seus fóruns de discussão da comunidade afetando os links nesta resposta ( https://web.archive.org/web/20171021012954/https://www.enterprisedb.com/news/enterprisedb-announces-new- postgres-rocks-online-user-forum ). Consegui caçar algumas das postagens originais na Wayback Machine. Um link morto que não consegui reparar é: "2010 janeiro - atualizando para 8.4.2 de 8.4.1", http://forums.enterprisedb.com/posts/list/2115.page#7888 .
Só para constar, executando o instalador para Windows a partir do Enterprise DB (o padrão, linkado no site do Postgres ), pelo menos desde a versão atual do Postgres 9.4, você não precisa interromper o
postgresql
serviço. O instalador faz isso para você. Você ainda precisa restabelecer as conexões, se houver (a maioria dos clientes faz isso automaticamente).Melhor consultar o manual atual (usando a versão atual do Postgres):
http://www.postgresql.org/docs/current/interactive/upgrading.html
Acabei de atualizar o Postgres 10.0 para 10.1 e foi uma atualização muito rápida e fácil.
Baixei os binários de https://www.enterprisedb.com/download-postgresql-binaries e descompactei-os para
C:\postgres
, depois renomeei o diretóriopgsql
parapgsql-10.1
para que eu possa manter as versões mais antigas até que sejam consideradas desnecessárias.Copiei os arquivos dll
msvcp120.dll
e porque prefiro essa instalação simples ao invés do "Instalador", que provavelmente adiciona muito mais inchaço do que o necessáriomsvcr120.dll
.C:\postgres\pgsql-10.1\bin
Em seguida, usei este script em lote simples que escrevi no passado:
Corri
SELECT version();
no psql para confirmar a versão antiga:Em seguida, executei o script em lote acima, que instalou um serviço chamado
postgres-10.1
.Parei o serviço antigo e defini-o
Startup Type
comoDisabled
, e iniciei o novo serviço.Executar
SELECT version();
novamente no psql confirmou a atualização (tive que executar duas vezes devido a conexão ter sido abortada quando parei o servidor antigo):Lembre-se de que a atualização de uma versão principal requer a atualização do diretório de dados com
pg_upgrade
ou algum outro método, mas para uma atualização menor, esse método funcionou perfeitamente.