Esta publicación es una versión muy condensada de mis últimas 24 horas, aunque en realidad aún no ha funcionado, así que también espero que alguien publique dónde salió mal debajo de esto.
Mi actualización de Discourse falló debido a una clave duplicada, una de mis etiquetas está duplicada. Para solucionar el problema de la actualización, necesité hacer una instalación nueva de Discourse y luego cargar mi última copia de seguridad, pero la recarga falla porque se enfada por la clave duplicada. Así que necesité ir dentro de la copia de seguridad para editar la etiqueta infractora por algo diferente.
Por alguna razón, la copia de seguridad re-comprimida con el problema de la etiqueta duplicada arreglado es significativamente más pequeña que la copia de seguridad de la que provino, y falla cuando intento restaurarla, así que algo salió un poco mal con el proceso de re-compresión.
1) Localización de copias de seguridad: Para localizar tus copias de seguridad de Discourse, puedes usar el siguiente comando:
sudo find / -name "*.tar.gz"
Esto buscará en tu sistema todos los archivos de copia de seguridad con la extensión “.tar.gz”. Por defecto, debería estar dentro de tu contenedor en: shared/backups/default
2) Hacer una copia: Una vez que hayas encontrado la copia de seguridad con la que quieres trabajar, crea una copia de ella para asegurarte de tener una copia de seguridad del archivo original. Usa el comando “cp”:
bash
sudo cp /ruta/a/copia_de_seguridad_original.tar.gz /ruta/a/copia_de_seguridad_copiada.tar.gz
3) Extracción de la copia: Extrae el contenido del archivo de copia de seguridad copiado usando el comando “tar”:
bash
tar -xzvf /ruta/a/copia_de_seguridad_copiada.tar.gz
Esto extraerá los archivos de copia de seguridad en un directorio temporal.
4) Edición de las etiquetas en la base de datos: Navega a los archivos de copia de seguridad extraídos y abre el archivo de base de datos relevante usando un editor de texto. Me encontré con un problema con etiquetas duplicadas de “socialmedia”, que impidieron una restauración exitosa. En una base de datos grande hay muchas instancias de etiquetas, y probablemente para la etiqueta específica que estás buscando, así que busqué ‘immutable socialmedia’ usando Ctrl W en Nano, lo que me llevó directamente allí.
sudo nano /ruta/a/base_de_datos_extraida.sql
Edité una instancia de la etiqueta “socialmedia” a “socialmedia2”, luego hice una búsqueda rápida para comprobar que ahora solo aparece una vez. Puedo arreglar esas etiquetas desde la sección de administración una vez que la restauración tenga éxito.
5) Recompresión: Después de editar los archivos de copia de seguridad, crea un nuevo archivo de copia de seguridad con el contenido corregido. Usa el siguiente comando para comprimir los archivos modificados:
tar -czvf /ruta/a/nueva_copia_de_seguridad_modificada.tar.gz /ruta/a/directorio_de_archivos_modificados
6) Mover al archivo correcto: Mueve el nuevo archivo de copia de seguridad modificado al directorio apropiado donde se almacenan las copias de seguridad. La ubicación por defecto suele ser “/shared/backups/default”:
sudo mv /ruta/a/nueva_copia_de_seguridad_modificada.tar.gz /shared/backups/default/
7) Detener e iniciar servicios: Antes de restaurar la copia de seguridad modificada, asegúrate de detener los servicios relevantes para evitar posibles conflictos durante el proceso de restauración. Usa el comando “./launcher stop app” para detener la aplicación Discourse:
./launcher stop app
8) Restauración de la copia de seguridad: Para restaurar desde la copia de seguridad modificada, usa el comando “discourse restore” con la ruta al nuevo archivo de copia de seguridad:
discourse restore /shared/backups/default/nueva_copia_de_seguridad_modificada.tar.gz
O puedes hacerlo a través de /admin en tu sitio, ya que ahora debería aparecer en la sección de copias de seguridad.
9) Verificación de la restauración: Después de que el proceso de restauración se completó, verifiqué que los cambios fueron exitosos revisando la aplicación y la base de datos de Discourse para asegurarme de que las etiquetas duplicadas de “socialmedia” fueron eliminadas.
10) Inicio de servicios: Reinicié los servicios que se detuvieron anteriormente para poner la aplicación Discourse en línea nuevamente. Usé el comando “./launcher start app” para iniciar la aplicación Discourse:
./launcher start app
11) Eliminación de archivos temporales y copias de seguridad adicionales: Después de restaurar exitosamente la copia de seguridad, eliminé cualquier archivo temporal y copia de seguridad adicional que se creó durante el proceso para liberar espacio en disco. Usa el comando “rm” para eliminar los archivos:
sudo rm -r /ruta/a/directorio_temporal
sudo rm /ruta/a/copia_de_seguridad_copiada.tar.gz
