¿Cuál es la forma más fácil de exportar un solo tema?

Hola,

Estamos intentando exportar un solo tema desde una instancia de Discourse, ya sea a almacenamiento local o, preferiblemente, a otra instancia. Los administradores de la instancia original apoyan la migración, pero no necesariamente quieren dedicar mucho tiempo a gestionarla, por lo que estamos buscando cualquier solución disponible que sea relativamente rápida y sencilla.

Hasta ahora, estamos considerando dos opciones:

Aunque el primer enlace es sin duda la forma más directa de lograr nuestro objetivo final, no estamos seguros de que nuestros administradores estén dispuestos a realizar lo que parece ser una cantidad considerable de trabajo de su parte para apoyar la migración. Por ello, también estamos considerando el Discourse Downloader de @pfaffman.

Sin embargo, si una de estas opciones es claramente mejor dadas nuestras necesidades y limitaciones, agradeceríamos mucho la opinión de quienes ya han realizado una u otra, o que estén más familiarizados con el proceso que nosotros. Además, si existe alguna otra opción que no hayamos encontrado y que sea mejor, ¡nos encantaría saberlo!

¡Gracias por su tiempo!

La herramienta de línea de comandos para importar/exportar temas/categorías se reduce a unos pocos comandos y, como máximo, cinco minutos de trabajo.

¿Has considerado las implicaciones legales de copiar usuarios a otra instancia?

Todos los usuarios están de acuerdo con el cambio, por lo que no espero que sea un problema.

Si piensas lo contrario, ¡hazmelo saber!

¿Realmente te refieres a un solo tema? ¿Por qué no copiar y pegar en la interfaz web?

Edición: ah, sí. Un tema tiene muchas publicaciones. Lo siento. :frowning_face:

De todos modos, ahora que lo entiendo, creo que usaría la tarea rake si puedes conseguir que tus administradores la ejecuten. No creo que sea tan difícil.

Posibles razones:

  • Quieres conservar los usuarios, las subidas, las citas, los «me gusta», etc.
  • El tema tiene un millón de publicaciones.

Vale, así que

Los administradores rechazaron ambas soluciones porque implicaría demasiado trabajo.

Sus palabras, no las mías; yo tampoco soy fan.

¿Acaso no sabrás cómo obtener un archivo .json no solo de una publicación, sino de todo el tema, sin permisos de administrador?

Edición: Quizás sea mejor abrir un nuevo tema, ya que supongo que esto ya no encaja con el título. Aun así, parece spam, así que no lo haré.

No creo que necesites ejecutar la solución de @pfaffman en el servidor. Por lo que sé, no necesitas a los administradores para ello.

Requiere una clave de API.

¿Es este un tema de un foro público? En ese caso, esto debería funcionar sin clave de API.

¡Guau! Parece que lo escribí de tal manera que no requerirá una clave de API si es un tema público.

¿O quizás no?

He aplicado una corrección, así que puedes hacer un git pull y debería funcionar ahora con un archivo apikeys vacío. (Creo que necesitas crear uno vacío, sin embargo). Descargará un tema a un archivo de texto.

Lo escribí para el análisis fuera de línea de discusiones, por lo que no estoy seguro de cuán útil será sin algún trabajo adicional. Creo que debería permitirte descargar el contenido localmente, pero no será de gran ayuda (tal como está) para moverlo a otro Discourse.

Si quieres que se mueva a otro Discourse y es un tema público, necesitarás, por ejemplo, adaptar esta herramienta de alguna otra manera. Si tienes un presupuesto, puedes contactarme o publicar en Marketplace.

Para ser honesto, si fuera a pasar tanto tiempo, probablemente simplemente escribiría algo que recorra el tema y descargue manualmente todos los archivos .json individuales lol

Desafortunadamente, no puedo asignar recursos a ninguna de esas opciones, así que ejecutar el descargador puede ser la mejor opción que tengo.

¡Gracias!

Ese código es un buen punto de partida. Está descargando los archivos JSON y luego convirtiéndolos a otros formatos.

¡Suena útil, gracias!

¡Gracias por el código de Ruby, @pfaffman!

Para quienes prefieren Python, hay un excelente punto de partida sobre cómo usar la API y los archivos JSON en mcmcclur/ArchiveDiscourse: Código para archivar mis sitios Discourse.