Postgres antigo em imagem Docker com dois contêineres: web e dados

Olá a todos,

Estou travado tentando atualizar uma instância do Discourse no Docker. Ao tentar reconstruir, inicializar ou configurar o container de qualquer outra forma, recebo o seguinte erro:

I, [2020-11-18T15:23:37.357104 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake plugin:pull_compatible_all'
I, [2020-11-18T15:23:40.298932 #1]  INFO -- : discourse-slack-official já está na versão mais recente compatível
docker_manager já está na versão mais recente compatível

I, [2020-11-18T15:23:40.299193 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
StandardError: Ocorreu um erro, todas as migrações posteriores foram canceladas:

PG::SyntaxError: ERROR: erro de sintaxe em ou próximo a "NOT"
LINE 2: ADD COLUMN IF NOT EXISTS image_upload_id bigint
                      ^

Após investigar, parece que o PostgreSQL 12 é necessário para a versão mais recente do Discourse, mas isso atualmente não está incluído na imagem oficial do Docker.

Parece haver uma branch de desenvolvimento no repositório para construir o container com PostgreSQL 12, mas não há PRs pendentes ou nada do tipo…

Como posso corrigir/atualizar minha instalação do Discourse? O caminho de atualização está incorreto e agora estou lutando para colocar os fóruns no ar o mais rápido possível!

2 curtidas

Nota adicional: a branch pg12 também não funciona (embora pareça tentar baixar uma versão diferente do container), ainda estou recebendo o mesmo erro em db:migrate…

Isso não é verdade. A imagem base do Discourse já vem com o PostgreSQL há vários meses, desde a atualização para o PostgreSQL 12.

Você pode compartilhar seu app.yml? Talvez você tenha forçado uma imagem base antiga nele e esquecido disso?

2 curtidas

Qual é a versão do seu checkout discourse_docker? Sei que o script launcher é projetado para se atualizar automaticamente, mas pode valer a pena executar git pull manualmente só para ter certeza.

A imagem base mais recente deveria ser:

image="discourse/base:2.0.20201004-2310"

O que você obtém ao executar

docker images | grep discourse/base

Além disso, esse plugin foi descontinuado há 3 anos :scream:

2 curtidas

Estranho, estou na versão mais recente do commit:

$ git branch -v
* master 4a4b0f8 DOCS: corrigir erro de sintaxe no readme

E parece que tenho a imagem mais recente:

$ docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
discourse/base         2.0.20201004-2310   b64c37d7ab06        6 semanas atrás     2.4GB
local_discourse/data   latest              253fd4d68068        3 anos atrás        1.7GB

Tenho certeza de que limpei as imagens antigas do Docker e tentei reconstruir o aplicativo web várias vezes.

Ahhh, preciso reconstruir o contêiner data primeiro ou algo assim? Ainda não mexi nele.

Além disso, esse plugin foi descontinuado há 3 anos :scream:

:see_no_evil: isso está na minha lista para atualizar, mas estou travado com a atualização atual!

Ah, você está usando a configuração de dados avançada?

Você precisa parar o web e reconstruir os dados para atualizar todo o software de dados. Há uma seção sobre isso em PostgreSQL 12 update

8 curtidas

Obrigado pela sua ajuda, reconstruindo o container data agora…

Ok, parece que funcionou, obrigado a todos novamente!

Esse é o tipo de problema esperado ao herdar uma instalação do Discourse e fazer uma atualização pela primeira vez :sweat_smile:

4 curtidas

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