Quiero actualizar a la última versión, pero tengo algunos problemas con ciertos componentes del tema.
Todos son mis propios componentes y los moví de GitHub a GitLab. Ahora, cuando intento actualizar Discourse (no desde dentro de Discourse), obtengo errores porque ya no están disponibles. Intenté eliminarlos desde dentro de Discourse, pero no se borran.
Mi pregunta es: ¿dónde está la ruta para eliminarlos directamente en el servidor? No logro encontrarlos.
Probé el modo seguro, pero no puedo acceder al foro en ese modo.
EDIT:
¿Existe un archivo similar a app.yml donde se almacenen todos los temas y componentes, para que pueda eliminar la lista y reconstruir Discourse sin ellos?
Creo que este es el problema que debes resolver. La forma correcta de abordarlo es eliminar todos los temas y componentes de tema que provienen de la ubicación anterior e importar los nuevos desde sus nuevas ubicaciones.
Esto no es posible, porque entonces Discourse quedaría en un bucle infinito. Por esa razón pregunté cómo eliminarlos de otra manera.
Ni siquiera puedo entrar en modo seguro.
Una reinstalación tampoco es posible porque la copia de seguridad es demasiado antigua.
Después de ejecutar ./launcher rebuild app, he visto que el foro no está disponible para invitados.
Entonces, ¿cómo puedo hacer que funcione de nuevo?
Creo que desactivar componentes manualmente en la base de datos es el tipo de solución que podría ser el último recurso en este caso. Es muy arriesgado, pero factible si no hay otras opciones.
Al menos, los componentes desactivados permitirán que la reconstrucción tenga éxito, lo que a su vez permitirá acceder a la interfaz de administración para eliminar y reinstalar componentes desde GitLab.
No se almacenan en la BD, sin embargo, su estado de activación/desactivación sí se guarda en la propia BD.
No recuerdo exactamente los pasos, pero recientemente solucioné una instalación con un problema similar.
Lo más importante aquí es saber si tu contenedor sigue en ejecución. Si está en ejecución, puedo darte consejos sobre cómo intentar desactivar los componentes problemáticos desde la base de datos.
Bueno, vale, eso es un problema.
¿No es posible usar algo como pgAdmin para acceder directamente a la base de datos?
No conozco el ID del tema ni de los componentes porque ya no tengo acceso al área de administración.
Edición:
He averiguado el tema y los componentes.
Desactivarlos no funciona, así que, ¿cómo los elimino con rails c?
Incluso intenté eliminarlos con rake, pero rake tampoco puede borrarlos.
rake themes:uninstall https://github.com/link/to/git.git
rake aborted!
No se sabe cómo construir la tarea 'themes:uninstall' (Vea la lista de tareas disponibles con `rake --tasks`)
¿Quiso decir? themes:install
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
(Vea el rastreo completo ejecutando la tarea con --trace)
O, ¿cuál es el comando correcto para eliminar cosas con rake?
Obtengo una lista de comandos con rake --tasks y rake -AT, pero no hay un comando para eliminar un tema o un componente.
Con rails c puedo desactivar un tema, pero tras una recarga sigue apareciendo el tema antiguo corrupto.
Hola @Osama. Últimamente me he preocupado por el problema de que los componentes del tema puedan romper una reconstrucción.
Creo que necesitamos una guía howto para abordarlo.
Pienso que esta corrección solo soluciona el caso de “construcción rota porque la URL de GitHub está dañada”, ¿verdad?
Para las construcciones que fallan debido a un error en el JavaScript, ¿existe una forma similar de desactivar o eliminar temas desde la línea de comandos que deberíamos incluir en una howto?
EDIT: como el fallo cuando se incluyen “Logotipos alternativos”…
También he estado pensando en esto durante un tiempo y, en mi opinión, tiene sentido para algunas comunidades, pero no para todas. Algunas comunidades consideran que sus personalizaciones o temas son una parte fundamental de la identidad de su sitio y les gustaría saber si hay problemas con sus personalizaciones al desplegar su sitio. Otras comunidades utilizan una instalación estándar de Discourse con algunas personalizaciones o componentes añadidos encima y podrían vivir fácilmente unos días sin ellos.
Quizás la casilla de verificación Actualizar automáticamente cuando se actualiza Discourse debería estar desactivada por defecto al instalar un nuevo tema o componente. Actualmente está activada por defecto y creo que debería estar desactivada, pero esto requiere una discusión más amplia…
No, el fragmento de código anterior (en particular la segunda línea) desactiva la actualización automática al desplegar para todos los temas o componentes actualmente instalados, por lo que debería solucionar cualquier compilación rota debido a la actualización automática de temas, incluidos errores de JavaScript/CSS. La sección howto solo debería incluir la segunda línea.
Acabo de encontrarme con este problema también. Si tienes un componente vinculado a un repositorio público y luego haces que ese repositorio sea privado, las reconstrucciones fallan. Es desagradable porque los usuarios pueden realizar cambios que pueden romper el sitio para los administradores del sistema meses después.