acabei de fazer o PostgreSQL 18 para uma instalação padrão e uma instalação com dois contêineres sem nenhum problema. obrigado novamente @chrisr e equipe pelas instruções fáceis.
para uma configuração com dois contêineres atrás do Cloudflare CDN com buckets de upload/backup no R2, os passos que usei foram os seguintes:
Passo 1: limpeza do disco
# remove todos os dados docker não utilizados
docker system prune -a -f
# limpa logs antigos e o cache do apt
journalctl --vacuum-time=2d
apt-get clean
apt-get autoremove -y
# verifica o tamanho do banco de dados
du -sh /var/discourse/shared/data/postgres_data*
# verifica o novo espaço livre disponível
df -h -x tmpfs -x devtmpfs
Passo 2: manutenção e backup
- edite uma página de manutenção do Cloudflare para dizer que haverá manutenção do sistema por 15-20 minutos (pode não demorar tanto, mas é melhor estar preparado!) e defina um timer de recarregamento de 30 segundos ou mais. ative uma rota de worker do Cloudflare para exibir a página de manutenção.
- dispare um backup via linha de comando:
cd /var/discourse
./launcher enter web_only
discourse backup
exit
- faça login no painel do Cloudflare R2 e verifique a pasta de backup para confirmar se o arquivo de backup foi enviado com sucesso
Passo 3: desligamento seguro
- pare primeiro o contêiner web para encerrar conexões ativas, depois pare o contêiner do banco de dados:
cd /var/discourse
./launcher stop web_only
./launcher stop data
- verifique se o PostgreSQL foi desligado corretamente:
tail -n 20 shared/data/log/var-log/postgres/current
Passo 4: reconstruções de upgrade
execute os seguintes comandos nesta ordem:
./launcher rebuild data # faz dump, migra e restaura o postgresql 18
./launcher rebuild data # reconstrói o contêiner do banco de dados
./launcher rebuild web_only # reconstrói o aplicativo web
Passo 5: otimização e limpeza
- gere as estatísticas de tabela do pg18 que estão faltando, caso contrário o fórum ficará mais lento do que o normal:
docker exec -u postgres data /usr/lib/postgresql/18/bin/vacuumdb -d discourse --analyze-in-stages
- teste o fórum para garantir que tudo esteja funcionando - a página de manutenção não deve mais carregar se você tiver um timer de recarregamento definido nela.
- remova a rota do worker do Cloudflare para a página de manutenção (não queremos atingir o limite diário de 100.000!)
- exclua os dados antigos do pg18 para recuperar esse espaço em disco:
rm -fr /var/discourse/shared/data/postgres_data_old/
pronto!
![]()
