No se puede eliminar el componente de tema obsoleto desde la CLI - falló el arranque

Sé que se debe a 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'
No se pudo actualizar Alternative Logos
about.json contiene valores no válidos: La versión máxima de Discourse no es vá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>'

Tenía este componente, pero como Discourse está caído, no puedo acceder al panel de administración para eliminarlo. ¿Cómo puedo eliminar ese componente del tema desde la línea de comandos?

No estoy seguro de qué hace cleanup con los contenedores detenidos, pero podrías simplemente ejecutar ./launcher start app y desactivar el culpable (en https://your.domain/admin/customize/themes) ¿?

¿Te refieres a los plugins en el archivo app.yml?

Sí.

Sé que se debe a 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'
Failed to update Alternative Logos
about.json contains invalid values: Maximum discourse version is invalid
/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>'

Tenía este componente, pero como Discourse está caído, no puedo acceder al panel de administración para eliminarlo. ¿Cómo puedo eliminar ese componente del tema desde la línea de comandos? No puedo reconstruir ni iniciar la aplicación, así que es una lástima.

Así que:

  • No puedo reconstruir porque Alternative Logos tiene una versión máxima en about.json que supera la mía.
  • No puedo eliminar el componente Alternative Logos sin entrar en la aplicación.
  • No puedo entrar en la aplicación porque no puedo reconstruirla.

¿Hay alguna manera de hacer algo al respecto? Quiero deshacerme del componente Alternative Logos.

¿No puedes simplemente iniciar la aplicación sin volver a compilarla?

./launcher start app

No se pudo encontrar la imagen 'local_discourse/app:latest' localmente
docker: Error en la respuesta del daemon: acceso de extracción denegado para local_discourse/app, el repositorio no existe o puede requerir 'docker login': denegado: se denegó el acceso solicitado al recurso.
Consulte 'docker run --help'.

No realmente, por desgracia.

Entonces, quizás git pull, pero quizás esperes a los refuerzos :sweat_smile: (Veo que Jay está respondiendo…)

No, git pull no hace nada.

¿Has probado

  ./launcher start app

Aunque si ejecutaste ./launcher cleanup mientras el contenedor antiguo estaba detenido y no tienes un contenedor para iniciar, entonces estás en un aprieto. ¿Es eso lo que hiciste? Parece que sí.

Creo que es un error que un componente de tema defectuoso impida la actualización, así que quizás pronto se presentará una solución.

Pienso que podrías modificar la base de datos para eliminar el componente del tema, pero si no tienes un contenedor en ejecución que te permita acceder a la base de datos, no estoy muy seguro de cómo lo harías.

Mi única otra solución de emergencia inmediata sería ver si podrías restaurar la base de datos existente en una instalación limpia.

Quizás puedas restaurar la base de datos en una instalación limpia (¿quizás ignorará el tema roto?), luego eliminar tu base de datos y reconstruir una nueva base de datos vacía con Discourse actualizado, y finalmente restaurar la base de datos desde la instalación limpia remota.

Otra solución sería crear una imagen solo de base de datos y usar SQL para eliminar el componente del tema defectuoso.

2 Me gusta

Supongo que voy a hacer una instalación limpia y restaurar desde una copia de seguridad (y en este archivo de respaldo .sql voy a realizar cambios en los Logos Alternativos).

Sin embargo, es una situación realmente mala que, si un componente rompe la reconstrucción de Discourse, no tengas otra opción que reinstalar desde cero.

2 Me gusta

Ok, así que la solución fue configurar una instalación nueva de Discourse, restaurar desde la copia de seguridad y luego eliminar el componente que estaba causando el problema.

3 Me gusta

Me encontré con una situación similar esta mañana, pero pude simplemente reiniciar la aplicación.

Mi sitio tiene alrededor de 10 temas, todos los cuales han estado utilizando el componente de Logotipos Alternativos, ya que cada tema usa logotipos de colores diferentes para coincidir con su esquema de color. Veo que ahora puedo ingresar los logotipos del tema oscuro en la configuración del sitio. Sin embargo, si elimino este componente obsoleto, ¿dónde agregaré todos los demás logotipos personalizados para los otros temas?

Creo que el problema está solo en el archivo about.json y que puedes bifurcar el componente del tema para crear tu propia versión. Pero no lo he revisado detenidamente ni lo he probado yo mismo.

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