Acabo de intentar actualizar mi instalación de Discourse a la última beta (2.4.0 beta 11) mediante la actualización web y ahora es inaccesible (pruébalo tú mismo, devuelve errores HTTP 500).
Contexto
Mi versión instalada era aún la 2.4.0 beta 6 y estaba intentando actualizar a la 2.4.0 beta 11.
Creo que tenía una instalación bastante estándar; no recuerdo si tenía plugins personalizados (y ahora no puedo consultarlo), pero como máximo 1 o 2. Mantuve la mayoría de la configuración predeterminada de Discourse.
Lo que hice
Hice clic en el enlace de actualización de un solo clic del navegador que venía en el correo de notificación de actualización, lo que me llevó a /admin/upgrade.
Según el actualizador web, primero tenía que realizar una actualización del gestor de Docker antes de poder actualizar la versión real de Discourse, así que seleccioné esa opción. Se ejecutaron varias tareas y, tras aproximadamente la mitad del progreso, apareció un mensaje sobre la pantalla de salida del registro web indicando que algo salió mal durante la actualización y que debía revisar los registros. Revisé los registros, pero nada llamó directamente mi atención. Lamentablemente, no guardé el registro y simplemente recargué la página, esperando poder reintentar la instalación y asumiendo que el fallo había provocado que la actualización se revirtiera.
Curiosamente, la página admin/upgrade/ me indicó entonces que el docker_manager estaba actualizado y ya no necesitaba ser actualizado, por lo que (probablemente por error) asumí que la actualización había funcionado y que el mensaje de error era un bug. También verifiqué si mi foro seguía funcionando y lo estaba, sin parecer tener problemas.
Ahora se me presentó la opción de actualizar la instalación de Discourse en sí (que antes estaba desactivada), así que lo hice. Nuevamente se registraron eventos en la salida del registro, a los que no presté mucha atención, y tras llenarse aproximadamente la mitad de la barra de progreso, se mostró un mensaje de error similar sobre algo que había salido mal.
Pensé que haría lo mismo que antes: recargar la página (nuevamente, lamentablemente no guardé el registro). Y como esperaba, ahora Discourse aparecía como “actualizado”.
Esto es lo que veo actualmente en admin/upgrade/:
Pero el foro real ya no funciona y solo devuelve errores 500.
Lo que aún funciona
/admin/upgrade/sigue funcionando y muestra que Discourse está actualizado.- También puedo hacer clic en la pestaña “Procesos” y obtener una lista de los procesos en ejecución.
Pero incluso la pestaña Copias de seguridad devuelve un error 500, al igual que /admin. No he encontrado ninguna parte del foro que funcione excepto las dos pestañas bajo /admin/upgrade/.
¿Cómo recuperarlo?
No tengo una buena idea de qué salió mal y tampoco sé por dónde empezar. Ni siquiera sé cómo acceder a los registros para averiguar cuál fue el error sin la interfaz web. La instalación de Discourse está alojada en Digital Ocean y puedo acceder por SSH a la máquina y probablemente al contenedor, pero no sé dónde buscar los registros.
Agradecería mucho una indicación sobre dónde buscar los registros.
Por ahora, mi mejor idea es volver a una copia de seguridad y perder todo lo publicado después de la última copia de seguridad (afortunadamente no hay mucho tráfico, por lo que perder un día de contenido es aceptable).
Mi plan actual y lo que me falta
He configurado Digital Ocean para realizar copias de seguridad semanales del Droplet y creo que mi instalación de Discourse estaba configurada para copias de seguridad diarias. Nunca configuré S3, por lo que esas copias deberían seguir guardadas localmente. Sin embargo, la copia de seguridad del Droplet de Digital Ocean tiene 5 días de antigüedad; preferiría no perder el contenido de los últimos días.
Mi plan aproximado es básicamente volver mediante copias de seguridad a un estado conocido y funcional haciendo lo siguiente:
- Descargar la copia de seguridad de Discourse de hoy/ayer.
- Revertir todo el Droplet mediante Digital Ocean a la última copia de seguridad de hace 5 días, para tener una instalación de Discourse funcional nuevamente.
- Importar la copia de seguridad descargada para recuperar el contenido (menos lo ocurrido después de la última copia de seguridad de Discourse).
Puedo realizar la reversión mediante DO (paso 2) y averiguaré cómo importar la copia de seguridad existente cuando llegue a ese punto (paso 3), pero no sé cómo acceder a la copia de seguridad sin la interfaz web y con /admin/backups/ devolviendo errores HTTP 500.
¿Dónde debo buscar para encontrar la copia de seguridad vía SSH / qué necesito para poder restaurarla después de revertir a la antigua copia de seguridad del Droplet mediante DO?
Buscando en los foros solo he encontrado temas sobre alojar las copias de seguridad en S3, pero no dónde se encuentran cuando se almacenan localmente.
