Hace unos meses instalé Discourse, añadí algunos temas como Tema de Índice en la sección Modo de Documentación. Todo funcionó como se esperaba.
Hice una copia de seguridad de todo, eliminé la cuenta de Digital Ocean, etc.
Hace unos días volví a instalar Discourse y restauré todo desde el archivo de copia de seguridad que creé y todo funciona, excepto las secciones de Documentación. Al principio pensé que el problema era que había deslistado esos temas de índice, pero estaban deslistados antes de desinstalar todo y funcionaban, así que no podía ser ese el problema. Aún así, intenté listarlos, pero sin éxito. La barra lateral seguía mostrando las categorías y todo lo demás que es predeterminado.
Luego decidí copiar el contenido del tema original y crear un tema nuevo con él, configurarlo como Tema de Índice, y ese sí funciona. También lo cerré y deslisté como el que no funciona, así que cerrar y deslistar no es el problema.
Parece que en el proceso de restauración, algo está rompiendo el modo de documentación por alguna razón.
Gracias por el enlace.
Como todavía estoy construyendo toda la estructura, terminé creando un nuevo tema, copiando y pegando el contenido del antiguo y eliminando el tema antiguo. Solo tenía 2 de esos de todos modos.
Entonces, mi pregunta es: ¿esa rake task es algo que necesito hacer cada vez que actualizo Discourse? ¿O solo cuando restauro (si lo hago de nuevo en el futuro)?
No, esa tarea rake es solo algo puntual a partir de la fecha de esa publicación citada.
No deberías necesitar recrear el tema, solo ir a la configuración de la categoría, desvincular, guardar y volver a vincular el tema existente al menos debería funcionar.
De lo que recuerdo en ese momento, no podría ser una migración. Las migraciones idealmente no tocan el código de la aplicación (porque el código puede desviarse de cuando se pretende la migración y dar error).
Este PR también incluye una tarea rake (doc_categories.rake) para reconstruir las secciones y enlaces de la barra lateral a partir de los temas de índice de documentos activos; esto no se recomienda exactamente hacerlo en una migración, ya que implicaría usar el analizador o nokogiri (cuyas implementaciones pueden desviarse y causar una migración no válida).
Entonces, si entiendo correctamente, ¿a partir de ahora no necesito hacer nada de eso? ¿La tarea rake o el proceso de volver a enlazar, cada vez que actualice Discourse?