Problemas ao atualizar discourse após algum tempo - FALHA NA ATUALIZAÇÃO DO POSTGRES

Não atualizo o Discourse há algum tempo e tentei fazê-lo hoje. No meu navegador em admin/update, recebo a mensagem de que tudo está atualizado, mas ele está mostrando a versão v2.4.0.beta2 +17 e eu entendo que a versão mais recente é a 3.6.0.beta2.

Então, tentei atualizar via terminal usando ./launcher rebuild app e a atualização falhou, com a mensagem UPGRADE OF POSTGRES FAILED. Li a página de suporte e segui todas as instruções lá e em posts semelhantes sobre problemas de atualização do POSTGRES, mas não consegui resolver o problema.

Eu olhei os logs em /var/discourse/shared/standalone/log/var-log/postgres e encontrei mensagens de erro repetidas, como esta:

2025-11-19 21:42:13.815 GMT [242] LOG: skipping missing configuration file “/shared/postgres_data/postgresql.auto.conf”
2025-11-19 21:42:13.816 UTC [242] FATAL: data directory “/shared/postgres_data” has wrong ownership
2025-11-19 21:42:13.816 UTC [242] HINT: The server must be started by the user that owns the data directory.

Uma coisa que não entendo é que não existe o diretório /shared/postgres_data - mas sim /shared/standalone/postgres_data.

A mensagem de erro do terminal está incluída abaixo. Eu agradeceria qualquer dica para fazer a atualização funcionar.

Obrigado,

Nick


Success. You can now start the database server using:



    /usr/lib/postgresql/13/bin/pg_ctl -D /shared/postgres_data_new -l logfile start



Ign:1 
 buster-pgdg InRelease

Ign:2 
 buster/updates InRelease

Err:3 
 buster-pgdg Release

  404  Not Found [IP: 151.101.67.52 80]

Err:4 
 buster/updates Release

  404  Not Found [IP: 151.101.2.132 80]

Ign:5 
 buster InRelease

Ign:6 
 buster-updates InRelease

Err:7 
 buster Release

  404  Not Found [IP: 151.101.2.132 80]

Err:8 
 buster-updates Release

  404  Not Found [IP: 151.101.2.132 80]

Get:9 https://deb.nodesource.com/node_15.x buster InRelease [4,584 B]

Reading package lists...

Reading package lists...

Building dependency tree...

Reading state information...

The following additional packages will be installed:

  postgresql-client-10

Suggested packages:

  postgresql-doc-10

The following NEW packages will be installed:

  postgresql-10 postgresql-client-10

0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.

Need to get 6,441 kB of archives.

After this operation, 30.6 MB of additional disk space will be used.

Err:1 
 buster-pgdg/main amd64 postgresql-client-10 amd64 10.17-1.pgdg100+1

  404  Not Found [IP: 151.101.195.52 80]

Err:2 
 buster-pgdg/main amd64 postgresql-10 amd64 10.17-1.pgdg100+1

  404  Not Found [IP: 151.101.195.52 80]

Stopping PostgreSQL 13 database server: main.



check for "/usr/lib/postgresql/10/bin" failed: No such file or directory



Failure, exiting

-------------------------------------------------------------------------------------

UPGRADE OF POSTGRES FAILED

Please visit 

 for support.



You can run ./launcher start app to restart your app in the meanwhile



FAILED

--------------------

Pups::ExecError: /root/upgrade_postgres failed with return #<Process::Status: pid 50 exit 1>

Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'

exec failed with the params "/root/upgrade_postgres"

9f400ba2cca88f79359496e95027cf26c2d5a3672837c5594793cf723585407b

** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.

./discourse-doctor may help diagnose the problem.

Você precisa reconstruir na linha de comando, duas vezes. Veja Atualização do PostgreSQL 15

Hmm. É possível que você tenha uma vinculação não padrão no seu app.yml. Seu sistema operacional está quase certamente desatualizado também. Eu recomendo migrar para uma nova VM e restaurar o banco de dados lá. Veja Mover um site Discourse para outro VPS com rsync.

Não copie o banco de dados. É mais fácil restaurar um backup.

Obrigado pela sua resposta, Jay. OK, criei uma nova VM e segui os passos no artigo em Preparar novo VPS. Agora não tenho certeza do que fazer - devo continuar com os passos em Copiar arquivos para o novo VPS? Estou me perguntando se estou fazendo uma instalação limpa do Discourse e depois restaurando o banco de dados da instalação antiga, ou copiando os arquivos do Discourse da VM antiga? Estou pensando que se eu apenas copiar os arquivos do Discourse da VM antiga, os problemas podem ser replicados na nova VM, mas provavelmente estou entendendo algo errado.

Como é tão antigo, eu recomendaria apenas fazer uma instalação limpa e copiar apenas o backup para o novo servidor.

  • fazer backup do site antigo
  • rsync -rav oldsite:/var/discourse/shared/backups /var/discourse/shared/
  • mudar o DNS para o novo servidor
  • ./discourse-setup (obtenha seus valores de SMTP do app.yml antigo) no novo servidor
  • ./launcher enter app
  • discourse backup (isso criará o diretório de backup padrão com as permissões corretas)
  • discourse enable_restore
  • discourse restore (isso exibirá os backups disponíveis)
  • copiar e colar o comando de restauração
    Uma versão mais complicada seria usar rsync em tudo, exceto no banco de dados, assim:
rsync -rav --numeric-ids OLD-IP:/var/discourse/shared/ /var/discourse/shared/ --exclude log --exclude postgres_* --exclude redis_data --exclude letsencrypt --exclude ssl --exclude log --exclude tmp --exclude state

Obrigado novamente, Jay. Consegui fazer uma instalação limpa do Discourse e restaurar o backup da antiga VM usando suas instruções, e tudo parece estar funcionando bem. Preciso me lembrar de atualizar com mais frequência!

2 curtidas

Ótimo! Isso é fantástico. Fico feliz que tenha funcionado!

Se a minha postagem foi a solução, por favor, clique no :check_mark: para que o tópico seja encerrado.