Tentei executar atualizações e reconstruir, mas acabei com este belo erro:
I, [2023-01-18T08:05:48.701709 #1] INFO -- : cd /var/www/discourse & su discourse -c 'LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all'
I, [2023-01-18T08:05:52.431210 #1] INFO -- :
I, [2023-01-18T08:05:52.431807 #1] INFO -- : cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
2023-01-18 08:05:59.081 UTC [1166] discourse@discourse ERROR: could not create unique index "index_tags_on_name_ccnew_ccnew_ccnew5"
2023-01-18 08:05:59.081 UTC [1166] discourse@discourse DETAIL: Key (name)=(vuejs) is duplicated.
2023-01-18 08:05:59.081 UTC [1166] discourse@discourse STATEMENT: REINDEX INDEX CONCURRENTLY index_tags_on_name_ccnew_ccnew
rake aborted!
StandardError: An error has occurred, all later migrations canceled:
PG::UniqueViolation: ERROR: could not create unique index "index_tags_on_name_ccnew_ccnew_ccnew5"
DETAIL: Key (name)=(vuejs) is duplicated.
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/rack-mini-profiler-3.0.0/lib/patches/db/pg.rb:110:in `exec'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/rack-mini-profiler-3.0.0/lib/patches/db/pg.rb:110:in `async_exec'
Existem outros tópicos no fórum com problemas semelhantes (1, 2, 3) mas quando tento entrar no container recebo isto:
/var/discourse# ./launcher enter app
x86_64 arch detected.
Error: No such container: app
Portanto, sou incapaz de remover índices manualmente.
Alguma outra sugestão sobre qual abordagem devo seguir?
Obrigado pelo relatório de bug. Vou analisar isso, mas acredito que há um problema com um índice em seu banco de dados e uma migração recente tenta corrigi-lo, mas alguns problemas não podem ser corrigidos sem intervenção humana.
Acredito que o commit que introduziu a migração que falha é este:
Você pode tentar fixar sua instância do Discourse na versão anterior, que é o commit 690e2f15ab9549486aaa6750e1093c1336bf17f2. Edite seu arquivo app.yml e defina a chave version em params. Certifique-se de descomentar essa chave também!
Então, tudo deve iniciar e você poderá remover a tag duplicada vuejs, mas isso pode ter alguns efeitos indesejados se a tag duplicada estiver em uso. Tentaremos encontrar uma solução melhor, mas isso deve funcionar até lá.
Já vimos isso no passado, é um problema de pesadelo, mas o isolamos como relacionado à atualização.
A estrutura do índice no PG depende da localidade no momento da instalação e as atualizações podem levar a um pesadelo às vezes.
Se o reindex não for emitido cedo o suficiente, problemas podem ocorrer. Algumas de nossas primeiras atualizações do PG docker não executaram isso… e algumas instalações antigas, infelizmente, têm uma pequena bomba-relógio.
Isso está em grande parte resolvido hoje em dia no ecossistema, mas um pouco de dor permanece.
Talvez isso possa ajudar a identificar a causa com mais precisão, então aqui estão mais alguns detalhes sobre o sistema:
A instalação é realmente antiga, desde 2014, mas o sistema é atualizado pelo menos uma vez por mês (embora geralmente seja a cada duas semanas). Portanto, nunca houve uma versão principal pulada.
Não há bloqueio de versão, então basicamente estamos executando a versão mais recente disponível no branch main (YOLO!).
Embora tenhamos tentado alguns não oficiais há um tempo, todos os plugins instalados são oficiais e tem sido assim nos últimos… 5 anos ou mais.
Estou tendo o mesmo problema, segui você até esta frase.
Como você realmente remove as duplicatas? Simplesmente emitindo uma instrução SQL delete no Data Explorer? E os registros de tabelas estrangeiras que apontam para essa tag?
Atualização 1
OK, vejo que você não pode executar instruções update.