Mover temas de una instancia de Discourse a otra

¿Necesitas mover algunas cosas de una instancia de Discourse a otra?

Hay una herramienta de línea de comandos para exportar un tema, un conjunto de temas o una categoría completa, y otra para importarlos en el otro extremo.

Exportación/Importación de Temas

  • uno o más temas y sus respuestas
  • los usuarios que publicaron en el tema

Exportación/Importación de Categorías

  • la categoría y todas sus subcategorías
  • su configuración de seguridad
  • grupos personalizados mencionados en la configuración de seguridad
    • :warning: si alguno de los grupos tiene habilitadas las ‘solicitudes de membresía’, fallará. Desactiva esto antes de la exportación
  • todos los temas y publicaciones en la categoría y subcategorías
  • todos los usuarios que publicaron y asígnalos a los grupos

Inicio: Identificar los IDs

Primero, identifica el(los) ID(s) de la =Exportación= que deseas exportar. Lo encontrarás al final de la URL utilizada para acceder a él.

  • https://meta.discourse.org/t/how-to-contribute-to-discourse/53797

  • https://meta.discourse.org/t/how-to-contribute-to-discourse/53797/12
    (en este caso estás en medio de un tema: toma el primer número)

  • https://meta.discourse.org/c/howto/faq/4

ID(s) de Categoría o Tema

Múltiples temas

Puedes seleccionar más de un tema añadiendo IDs separados por un espacio; esto funciona en el campo de arriba (no creo que esto funcione para categorías):

  • 53797 200943 124096

Ejecutar el Script de Exportación

La herramienta se puede ejecutar como usuario root dentro del contenedor:

cd /var/discourse
./launcher enter app

Ejecuta este comando:

discourse export_=Export= =ID=

La salida debería verse algo así:

> Iniciando exportación de =Exportación=…
>
> ¿De dónde vienen todos los usuarios nuevos?
> Exportación guardada en =Exportación=-export-2021-08-27-015437.json
>
> Listo

Mover el Archivo Exportado

El archivo .json exportado debe moverse desde el interior del contenedor de la aplicación donde realizaste la exportación al interior del contenedor de la instancia receptora. Esto requiere algunos pasos.

Copiarlo al ‘exterior’

Sal del contenedor si aún no lo has hecho

exit

Ahora deberías tener un indicador como este:
> root@yourserver:/var/discourse

Usa docker para copiar el archivo fuera del contenedor (creo que no puedes moverlo)

docker cp app:/var/www/discourse/=FileName= .

Moverlo a la otra instancia

Esto está fuera del alcance de esta guía, pero esto podría ayudarte a lograrlo:

Copiarlo al contenedor en la instancia receptora

Inicia sesión por SSH en tu instancia receptora como root y ve al directorio de Discourse:

cd /var/discourse

Usa docker una vez más para copiar el archivo al otro contenedor

docker cp =FileName= app:/var/www/discourse

Importar el Contenido

Entra al contenedor en la instancia receptora:

./launcher enter app

Ejecuta el script de importación

discourse import_=Exportación= =FileName=

:cake: ¡Hecho!

Puede que necesites ordenar algunos cabos sueltos, pero con suerte, todo debería estar hecho.

Consejos Avanzados

Gem de Ruby Faltante

Al realizar una importación compleja de categorías, a mi instancia le faltaba la Ruby ‘Listen’.
Esto se resolvió haciendo esto: (usando el usuario Discourse dentro del contenedor)

./launcher enter app
su discourse
bundle config --delete without
bundle config --delete with
bundle install
exit
exit

Esto rompió la consola de rails, lo que requirió una reconstrucción posterior

./launcher rebuild app

Múltiples Sitios

En un entorno de múltiples sitios, usa la variable de entorno RAILS_DB.

RAILS_DB=xxxmoves discourse export_=Exportación= =ID=
RAILS_DB=dancerehab discourse import_=Exportación= =FileName=

Por favor, informa de errores en la categoría bug, y solicita mejoras en la categoría #feature.


Temas Relacionados


Última Revisión por @SaraDev en 2022-07-13T00:00:00Z

\u003cdiv data-theme-toc=“true”\u003e \u003c/div\u003e

44 Me gusta
UI: Topic and Category Export/Import
CLI command to migrate a single category
Moving topics between sites?
Category/Topic export fails with error "database "discourse_development" does not exist"
Easiest way to export a single topic?
Saving a Conversation
Migrate user custom fields to another instance
How to export user data from a category on a hosted site
Error Importing Categories from a Discourse Instance to Another
Import CSV User Activity from one Discourse to Another
How use API to convert topic in discourse1.com to discourse2.com
Can sub-forums of the same instance split up and move to new independent servers (or discourse instances)?
Adding default sets of topics, categories and users to a new Discourse
I wonder how to add hundreds of users into a group? Is there any api?
How to download Comments and Topics
Downloading Content
Can we combine 2 separate discourse sites?
Tracking and resolving a schema drift cause
Merge two Discourse forums into one
Moving topics from a forum on one website to a forum on another website
Transfer topics between forums?
Forum Aquisition
Imported categories are not in parent category
Help migrating category from one instance to another without admin on the source instance
Selective backups skipping settings and config
Test driving admin/moderation features
Add backup to existing Discourse instance
Merging two Discourse forums
Migrating vBulletin onto existing and live Discourse instance
Migrate topics from one discourse instance to another?
A system where people have to start at lesson 1, and cannot see the other lessons?
How to divide my community into 2 parts