Não é possível excluir o componente de tema obsoleto do CLI - falha ao inicializar

Sei que o problema se deve aos Logos Alternativos:

I, [2021-06-25T11:00:32.360020 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile'
Falha ao atualizar Logos Alternativos
about.json contém valores inválidos: A versão máxima do Discourse é inválida
/var/www/discourse/app/models/remote_theme.rb:169:in `update_from_remote'
/var/www/discourse/lib/tasks/themes.rake:61:in `block (2 levels) in <main>'

Eu tinha esse componente, mas como o Discourse está fora do ar, não consigo acessar o painel de administração para excluí-lo. Como posso remover esse componente de tema pelo terminal?

Não tenho certeza do que a limpeza faz com os containers parados, mas você pode apenas ./launcher start app e desabilitar o culpado (em https://your.domain/admin/customize/themes)?

Você quer dizer os plugins no app.yml?

Exato.

Sei que o problema é devido ao Alternative Logos:

I, [2021-06-25T11:00:32.360020 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile'
Falha ao atualizar o Alternative Logos
about.json contém valores inválidos: A versão máxima do Discourse é inválida
/var/www/discourse/app/models/remote_theme.rb:169:in `update_from_remote'
/var/www/discourse/lib/tasks/themes.rake:61:in `block (2 levels) in <main>'

Eu tinha esse componente, mas como o Discourse está fora do ar, não consigo acessar o painel de administração para excluí-lo. Como posso remover esse componente de tema pelo terminal? Não consigo reconstruir ou iniciar o aplicativo, o que é uma pena.

Então:

  • Não consigo reconstruir porque o Alternative Logos tem uma versão máxima no about.json que estou acima
  • Não consigo excluir o componente Alternative Logos sem entrar no aplicativo
  • Não consigo entrar no aplicativo porque não consigo reconstruí-lo

Existe alguma maneira de fazer algo sobre isso? Quero me livrar do componente Alternative Logos.

Você não pode simplesmente iniciar o aplicativo, sem recompilá-lo?

./launcher start app

Não foi possível encontrar a imagem 'local_discourse/app:latest' localmente
docker: Resposta de erro do daemon: acesso de pull negado para local_discourse/app, o repositório não existe ou pode exigir 'docker login': negado: o acesso solicitado ao recurso foi negado.
Veja 'docker run --help'.

Infelizmente, não.

Então talvez git pull, mas talvez espere pela cavalaria :sweat_smile: (vejo o Jay respondendo…)

Não, o git pull não faz nada.

Você já tentou

  ./launcher start app

Embora, se você executou um ./launcher cleanup enquanto o container antigo estava desligado e não tem um container para iniciar, então você está em uma situação complicada. Foi isso que você fez? Parece que foi.

Acho que é um bug que um componente de tema defeituoso torne impossível fazer uma atualização, então talvez uma solução esteja por vir.

Acho que você poderia modificar o banco de dados para remover o componente de tema, mas se não tiver um container em execução para permitir o acesso ao banco de dados, não tenho certeza de como você faria isso.

Minha única outra solução de emergência imediata seria verificar se você poderia restaurar o banco de dados existente em uma instalação limpa.

Talvez você possa restaurar o banco de dados em uma instalação limpa (talvez ele ignore o tema quebrado?), depois excluir seu banco de dados e recriar um novo banco de dados vazio com o Discourse atualizado, e então restaurar o banco de dados da instalação limpa remota.

Outra solução seria criar uma imagem apenas de banco de dados e usar SQL para remover o componente de tema defeituoso.

2 curtidas

Acho que vou fazer uma instalação limpa e restaurar a partir de um backup (e, neste arquivo de backup .sql, vou fazer alterações nos Logos Alternativos.

É uma situação realmente ruim que, se um componente quebrar o rebuild do Discourse, você não tenha nenhuma outra opção além de reinstalar do zero.

2 curtidas

Ok, então a solução foi configurar uma instalação nova do Discourse, restaurar a partir do backup e depois excluir o componente que estava causando o problema.

3 curtidas

Enfrentei uma situação semelhante esta manhã, mas consegui simplesmente reiniciar o aplicativo.

Meu site tem cerca de 10 temas, todos usando o componente Alternative Logos desde que cada tema usa logotipos de cores diferentes para combinar com sua paleta de cores. Vejo que agora posso inserir os logotipos do tema escuro nas configurações do site. No entanto, se eu excluir esse componente obsoleto, onde devo adicionar todos os outros logotipos personalizados para os demais temas?

Acho que o problema está apenas no arquivo about.json e que você pode fazer um fork do componente do tema para criar sua própria versão. Mas eu não olhei de perto nem tentei fazer isso.

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