Quero fazer a atualização para a versão mais recente, mas estou enfrentando alguns problemas com componentes de temas.
Todos eles são meus próprios componentes e os movi do GitHub para o GitLab. Agora, quando tento atualizar o Discourse (não diretamente pelo próprio Discourse), ocorrem erros porque eles não estão mais disponíveis. Tentei excluí-los dentro do Discourse, mas não consegui.
Agora, minha pergunta é: qual é o caminho para excluí-los diretamente no servidor? Não consigo encontrá-los.
Tentei o modo seguro, mas não consigo acessar o fórum nesse modo.
EDIT:
Existe algum arquivo, semelhante ao app.yml, onde todos os temas e componentes são armazenados, para que eu possa remover a lista e reconstruir o Discourse sem eles?
Acho que esse é o problema que você precisa resolver. A maneira correta de abordar isso é excluir todos os temas e componentes de tema que vêm do local antigo e importar novos a partir de seus novos locais.
Isso não é possível, pois o Discourse ficaria em um loop infinito. Por isso, perguntei como excluí-los de outra forma.
Eu nem consigo entrar no modo de segurança.
Uma reinstalação também não é possível porque o backup está muito antigo.
Após executar ./launcher rebuild app, notei que o fórum não está disponível para visitantes.
Acho que desabilitar componentes manualmente no banco de dados é o tipo de solução que poderia ser o último recurso aqui. É altamente arriscado, mas viável se não houver outras opções.
Componentes desabilitados permitirão, pelo menos, que a reconstrução seja bem-sucedida, o que, por sua vez, permitirá o acesso à interface de administração para remover e reinstalar componentes do GitLab.
Eles não são armazenados no banco de dados; no entanto, o estado de ativação/desativação deles é armazenado no próprio banco de dados.
Não lembro exatamente os passos, mas recentemente corrigi uma instalação com problema semelhante.
O mais importante aqui é saber se seu contêiner ainda está em execução. Se estiver, posso dar orientações sobre como tentar desativar os componentes problemáticos diretamente no banco de dados.
Bom, ok, isso é um problema.
Não seria possível usar algo como o pgAdmin para acessar o banco de dados diretamente?
Não sei o ID do tema e dos componentes porque não tenho mais acesso à área administrativa.
Edição:
Descobri o tema e os componentes.
Desativá-los não funciona, então como excluí-los com o rails c?
Até tentei removê-los com o rake, mas o rake também não consegue excluí-los.
rake themes:uninstall https://github.com/link/to/git.git
rake aborted!
Não sei como executar a tarefa 'themes:uninstall' (Veja a lista de tarefas disponíveis com `rake --tasks`)
Você quis dizer? themes:install
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
(Veja o rastro completo executando a tarefa com --trace)
Ou qual é o comando correto para deletar coisas com rake?
Eu obtenho uma lista de comandos com rake --tasks e rake -AT, mas não há um comando para deletar um tema ou um componente.
Com rails c posso desativar um tema, mas com um recarregamento, o tema antigo corrompido ainda aparece.
Ei @Osama. Tenho me preocupado ultimamente com o problema de theme-components-can-break-a-rebuild.
Acho que precisamos de um howto para abordar isso.
Acredito que essa correção aqui resolve apenas o caso de “build quebrado porque a URL do GitHub está quebrada”, certo?
Para builds quebrados devido a um erro no JavaScript, existe uma maneira similar de desativar ou remover temas via linha de comando que deveríamos incluir em um howto?
EDIT: como quando falha ao incluir “Alternative Logos”. . .
Também tenho pensado sobre isso há algum tempo, e minha opinião é que isso faz sentido para algumas comunidades, mas não para todas. Algumas comunidades tratam suas customizações/temas como parte fundamental da identidade do site e realmente querem saber se há problemas com suas customizações quando o site é implantado. Outras comunidades usam uma instalação padrão do Discourse com algumas customizações ou componentes adicionados por cima e poderiam facilmente ficar alguns dias sem eles.
Talvez a caixa de seleção “Atualizar automaticamente quando o Discourse for atualizado” deva vir desmarcada por padrão ao instalar um novo tema ou componente? Atualmente, ela vem marcada por padrão, e acho que deveria vir desmarcada, mas isso precisa de uma discussão mais ampla…
Não, o trecho de código acima (a segunda linha, em particular) desativa a atualização automática na implantação para todos os temas/componentes atualmente instalados. Portanto, deve corrigir qualquer construção quebrada devido à atualização automática de temas, incluindo erros de JS/CSS. O howto deve incluir apenas a segunda linha.
Acabei de encontrar esse problema também. Se você tiver um componente vinculado a um repositório público e depois tornar esse repositório privado, as recompilações falham. É desagradável porque os usuários podem fazer alterações que podem quebrar o site para os administradores de sistema meses depois.