Atualização do PostgreSQL 18 para self-hosters

O painel do Literate Computing atualizou com sucesso dois sites independentes e um site de dois contêineres sem incidentes. Na maioria dos casos, tudo o que era necessário era alterar a versão alvo do Postgres em uma variável, então, conforme anunciado, o processo é o mesmo dos últimos.

Na verdade, é bastante suportado, é muito mais seguro do que atualizar uma versão principal do banco de dados. Se algo der errado, você simplesmente não faz a troca para o novo servidor. Se você estiver perto de precisar de uma atualização do SO e/ou quiser tempo de inatividade mínimo, é uma boa opção. Você tem acesso somente leitura enquanto constrói o novo servidor e depois faz a troca. A maneira fácil tem apenas tempo de inatividade para a reconstrução final, ou zero tempo de inatividade se você copiar os certificados do servidor antigo).

Se tudo der errado com uma atualização do banco de dados, construir um novo servidor e restaurar o backup é a solução fácil.

Certifique-se de fazer um backup antes de começar. Eu faço um backup apenas do banco de dados, já que você não vai perder seus uploads.

4 Curtiram

OBSERVAÇÃO: Não tenho certeza do motivo, mas a atualização para o PostgreSQL 18 desativa as verificações de integridade de dados nativas. As verificações de integridade de dados do PostgreSQL são um recurso padrão e parece muito incomum desativá-las.

PR para não desativar as verificações de dados (ativadas por padrão): Do not disable PostgreSQL 18 data checksums - Pull Request #1105 - discourse/discourse_docker - GitHub

E é melhor do que ter que manter 20 GB livres por aquela única hora em que você vai precisar durante o ano todo kkk

Talvez essa deva ser a abordagem recomendada para economizar árvores e água. :sweat_smile:

Só para confirmar, não estou usando o PostgreSQL fornecido pelo Discourse e o próprio Discourse ainda não exige o PG18, correto? Então, não sou obrigado (ainda) a fazer a atualização para o PG18.

Bom ponto. Mas o outro aspecto é que as versões LTS saem a cada dois anos, então não é uma má ideia fazer isso ao mesmo tempo.

Você tem bastante tempo. Eles pressionaram por… hum, alguma versão bem rápido após a atualização devido a algum recurso que era necessário, mas você provavelmente pode esperar até um ano. Eu acompanho o repositório discourse_docker. Em algum ponto eles começarão a falar sobre remover o suporte ao PG15; não é especialmente barulhento e é uma maneira fácil de se manter atualizado com as mudanças internas.

2 Curtiram

Funcionou perfeitamente na minha instalação do Pi 5, duas reconstruções e pronto.

6 Curtiram

Por falar nisso, temos algum benchmark?

Isso pode incentivar outros a seguir nossos passos intrepides mais cedo.

Minha IA de busca web gratuita está me dizendo:

Para um aplicativo Rails típico, migrar do PostgreSQL 15 → 18 pode resultar em ~10–25% de melhoria no desempenho das consultas sem alterações no código, e até 40% em padrões de consulta específicos, se você aproveitar os novos recursos de indexação e do planejador.

Se for verdade, essa é uma atualização bem interessante! :tada:

5 Curtiram