Discussão sobre postgres 12 quebra atualizações

Estamos executando o PostgreSQL v12, pois a atualização para o v13 exige muito espaço em disco. Parece que a compatibilidade com o v12 pode ter sido quebrada? Isso é intencional? Se for, isso significa que nunca mais poderemos atualizar o Discourse.

Executar ./launcher start app nos trouxe de volta online, então não é um problema de produção no momento, mas não poder atualizar nem mesmo para correções de segurança etc. seria muito ruim para nós.

Do app.yml:

  - "templates/postgres.12.template.yml"

Executando ./launcher rebuild app:

FALHA
--------------------
Errno::ENOENT: No such file or directory @ rb_sysopen - /etc/postgresql/13/main/pg_hba.conf
Local da falha: /pups/lib/pups/replace_command.rb:8:in `read'
substituição falhou com os parâmetros {"filename"=>"/etc/postgresql/13/main/pg_hba.conf", "from"=>"/^host.*all.*all.*::1\\/128.*$/", "to"=>"host all all ::/0 md5"}
0ba8112e6efa1ac2dd75af8a1da8eea0937e7aefbca2df28b22d27e9608d1479
** FALHA NA INICIALIZAÇÃO ** por favor, role para cima e procure mensagens de erro anteriores, pode haver mais de uma.
./discourse-doctor pode ajudar a diagnosticar o problema.

Versão atualmente em execução: 2.8.0.beta4 75b0d6df93.

está procurando pelo PostgreSQL 13 e não pelo 12.

{“filename” => “/etc/postgresql/13/main/pg_hba.conf”,

Exato. Esse é o problema.

Por que você não faz um backup, cria uma instância totalmente nova do Discourse (que deve vir com o PostgreSQL 13 como padrão), restaura o backup e remapeia o servidor no DNS?

2 curtidas

Isso funcionaria, sim. Estou desesperadamente tentando evitar ter que fazer isso.

1 curtida

Pode parecer assustador, mas você terá salvaguardas suficientes; sempre é possível trazer o servidor antigo de volta ao ar.

1 curtida

É menos assustador do que um trabalho chato que eu gostaria de evitar, combinado com informar ao meu fórum que eles perderão um ou dois dias de posts. Idealmente, gostaria que os caras do Discourse dissessem: “Claro que ainda trabalhamos com o PG12, isso é apenas um bug, vamos corrigir isso”.

Não consigo ver por que isso é necessário.

  1. Preparar um novo servidor em um subdomínio?

  2. Ativar o modo somente leitura no servidor existente e criar um backup

  3. Importar o backup no novo servidor

  4. Reconfigurar o DNS

  5. Reconstruir o novo servidor com o subdomínio principal do Discourse.

Esse processo poderia levar 30 minutos?

2 curtidas

Não, eu administro um fórum muito grande.

2 curtidas

Ah! Um problema bom de se ter! :slight_smile:

Suponho que não é como se eu fosse pago! :wink:

1 curtida

Ah, entendi, é um bug introduzido por um PR da comunidade. Como não executamos o PG12 em nenhum lugar, passou despercebido. Dê-me alguns minutos.

5 curtidas

Corrigido em

Você pode tentar reconstruir novamente, @Wingtip?

Dito isso, não executamos mais o PG12, então podemos introduzir alguma sintaxe SQL exclusiva do PG13+ a qualquer momento no núcleo. Por isso, seria uma boa ideia agendar a atualização algum dia.

5 curtidas

Vou verificar assim que tirar outro snapshot da minha VM.

É realmente irritante como o PG exige uma tonelada de espaço em disco para fazer a atualização. Não tenho esse problema no Oracle ou no MySQL; eles simplesmente atualizam no local.

pg_upgrade oferece uma única flag --link para permitir atualizações no local.

Optamos por não usá-la em nosso script de atualização de launcher “amigável para iniciantes”, pois 99% das instalações estão rodando em uma VM na nuvem que pode expandir facilmente e com baixo custo o tamanho do disco.

Mas ela está disponível como uma opção para quem prefere realizar a atualização manualmente a fim de economizar espaço em disco durante o processo.

1 curtida

Foram fornecidas duas soluções; conforme me lembro, uma basicamente precisava de três vezes o tamanho do banco de dados inteiro e a outra precisava de cerca do dobro. Se for possível fazer isso no local, documentar isso seria muito útil.

Edição: A correção funcionou, obrigado!

2 curtidas

Sim, eu copiei e colei sem pensar — desculpe e obrigado por corrigir!

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.