¿Cómo migrar de Discourse a otra plataforma de comunidad?

¡Hola! Tengo la intención de trasladar mi comunidad, que está en Discourse, a otra plataforma. ¿Cómo puedo exportar el contenido y los usuarios en un archivo SQL?

Hola :slight_smile:
Simplemente haz una copia de seguridad desde tu panel de administración. Todo está ahí.

5 Me gusta

Por curiosidad, ¿estás dispuesto a compartir por qué te mudas de Discourse?

5 Me gusta

@Canapin ¡Muchas gracias por tu ayuda! Para confirmar el procedimiento: en el panel de administración, abro la sección de copias de seguridad y simplemente descargo la del último día, ¿verdad?

1 me gusta

Sí, exactamente. El archivo debe contener el volcado de SQL, así como las subidas.

3 Me gusta

Para estar seguro, también puedes hacer una copia de seguridad primero y luego descargar la copia de seguridad más reciente.

4 Me gusta

Hola @Gabriel_Fernando_Mar,

Después de revisar más detenidamente tu captura de pantalla, parece que solo contiene la base de datos, no las cargas. Podemos verlo por la parte del nombre de archivo sql.gz.

Es posible que desees habilitar la configuración del sitio copia de seguridad con cargas antes de crear una nueva copia de seguridad cuyo nombre de archivo termine en .tar.gz.

Ejemplo:

¡Disculpa mi respuesta anterior, que fue engañosa!

2 Me gusta

Hola, @Canapin! Espero que te encuentres bien :slight_smile:

Lamentablemente, estamos teniendo algunos problemas para migrar el contenido que se encuentra en Discourse. Anteriormente, habíamos enviado el archivo de copia de seguridad en SQL a la nueva herramienta y uno de los errores que identificaron fue el siguiente:

  1. Hay una buena cantidad de archivos adjuntos faltantes. Mis ingenieros lo encontraron al procesar temas que hacían referencia a archivos adjuntos, pero dichos archivos adjuntos no estaban disponibles en las exportaciones que proporcionaste. Sospechamos que estos archivos adjuntos se guardan en otro lugar en Discourse (una base de datos separada, por ejemplo). ¿Podrías verificar nuevamente si hay archivos adjuntos adicionales que puedas localizar y proporcionarnos?

Después de tu orientación aquí en el tema, seleccioné la opción para incluir las cargas y generé un nuevo archivo en formato .tar, pero aún así mostraron un error (imagen a continuación).
¿Es posible que las imágenes y otros medios no estén incluidos en el archivo de migración, incluso seleccionando la opción “upload” en la configuración de copia de seguridad? ¿Qué podría estar sucediendo?
Parece que todavía faltan más de 8.100 archivos.

¿Faltaban antes de la migración?

Deberías usar la ruta url de la tabla uploads para determinar la ubicación de los archivos.
Probablemente encontrarás que estos archivos se almacenan en S3. Estos no están incluidos en tu copia de seguridad. Tu script de importación puede recuperarlos de S3 cuando los necesites (o dejarlos allí y simplemente hacer referencia a ellos).

3 Me gusta

Para ampliar mi pregunta, hay varias situaciones en las que podrías encontrarte:

  • ninguna de las cargas está en tu archivo de copia de seguridad
  • algunas de las cargas están en tu archivo de copia de seguridad
  • todas las cargas (disponibles) están en tu archivo de copia de seguridad

y, desafortunadamente, no hay forma de que sepamos cuál de estos casos es el que estás experimentando.

rake posts:missing_uploads podría ayudar.

Entiendo que tal vez no quieras hablar sobre el tema, pero permíteme decirte que también estaría muy interesado en la lógica de la mudanza, como preguntó @Canapin. A otros probablemente también les gustaría saberlo :+1: Son solo más educados que yo :laughing: ¡Gracias!

1 me gusta

@supermathie @RGJ @Canapin ¡Gracias por sus respuestas! Voy a poner aquí los pasos que realizamos para generar el archivo de copia de seguridad. Por favor, háganme saber si encuentran alguna mala configuración.

Configuración de copia de seguridad:
La ubicación de la copia de seguridad está en S3. ¿Es correcto o deberíamos seleccionar la otra opción? La otra opción es “almacenamiento local” en traducción gratuita. ¿Qué significa?


Después de haber realizado esta configuración, simplemente descargamos el archivo en .tar y lo enviamos al otro equipo de plataforma.

¿Cometimos un error? ¿Necesitamos ajustar algo en la configuración de copia de seguridad? ¿O el otro equipo de plataforma necesita algún acceso o algún otro archivo?

Disculpen las preguntas, pero no tengo muchos conocimientos técnicos en migraciones y scripts. Pensamos que sería fácil exportar de forma nativa desde Discourse.

¡Hola, @Mevo! La razón principal es la interfaz y la experiencia de usuario.
Nuestra comunidad está creciendo y necesitábamos una plataforma más fácil de usar e intuitiva.
También algunos problemas de participación del usuario: hemos recurrido a la gamificación, campañas de correo electrónico y otras funciones.

4 Me gusta

¡Gracias! ¿Y a qué te has mudado?

2 Me gusta

No hay nada malo en tu archivo de copia de seguridad.
Simplemente debes indicar al “otro equipo de la plataforma” que busque los archivos en el bucket S3 inspeccionando la columna url en la tabla uploads, en lugar de intentar encontrarlos en el archivo de copia de seguridad.

La exportación es fácil, la importación a otro sistema no lo es…

9 Me gusta

Si desea que los archivos S3 se incluyan en la copia de seguridad, deberá habilitar include_s3_uploads_in_backups.

Por defecto, esto no está activado, ya que descargar todas las cargas de S3 solo para empaquetarlas en un archivo tar y enviarlas de nuevo puede consumir mucho tiempo y ser potencialmente costoso.

3 Me gusta

@supermathie @RGJ @Canapin ¡Hola! ¡Espero que estéis bien! Todavía tengo algunos problemas con la migración de imágenes. A continuación, se muestran las capturas de pantalla de la configuración de copia de seguridad actual y las respuestas del equipo de la plataforma Insided:


Aquí hay notas adicionales de sus ingenieros:

  • En el archivo que proporcionaste el 17/05 (formato .tar), los archivos en sí no están incluidos.

  • Por ejemplo, la columna url tiene un valor que es: /uploads/db0693/original/2X/9/9fedfd520d43a0e03281fc4a6e636ad2116a99a3.gif. Luego pueden localizar el archivo en los datos que proporcionaron siguiendo la ruta (uploads/db0693/etc). Por lo tanto, este archivo no está en el documento Missing-Files.txt.

  • Otra entrada tiene la siguiente url: //upload-forum-blip.s3.dualstack.us-east-1.amazonaws.com/uploads/db0693/original/2X/d/da4a7824e7a48d73c0cb8724225e5dddc111ed63.jpeg. Aquí, también intentaron encontrar el archivo físico siguiendo la ruta en el volcado de datos a (uploads/db0693/etc). Pero este archivo no forma parte de los archivos entregados y, por lo tanto, está en la lista.

  • Según las respuestas en el hilo de la comunidad que enlazaste, sospechamos que necesitarás navegar a tu bucket s3 (upload-forum-blip.s3.dualstack.us-east-1.amazonaws.com) y descargar la carpeta de carga (y subcarpetas) de allí manualmente, además de los archivos que obtienen al exportar la copia de seguridad.

¿Tienen sentido estas notas? ¿Es posible que alguien del equipo de soporte se ponga en contacto conmigo para exportar estos archivos?
¡Gracias!

1 me gusta

:face_with_raised_eyebrow: Entonces este archivo se encuentra simplemente en la URL que han encontrado (aquí)

¿En serio me estás diciendo que estos ingenieros son incapaces de a) descargar un archivo desde su script de importación y/o b) usar una herramienta como S3browser o Cyberduck para descargar esos archivos?

Parece que te alojas con Communiteq, normalmente nos mantenemos alejados de los buckets de S3 que son autogestionados por nuestros clientes, pero terminemos con esto. Simplemente abre un ticket con el soporte de Communiteq para que tengamos tu permiso registrado y me aseguraré de que obtengas una descarga de estos archivos.

Pero es posible que tengas que pensarlo dos veces antes de mudarte allí si este es el “soporte” que estás recibiendo de ellos.

3 Me gusta

¿Habilitaste include_s3_uploads_in_backups como se recomendó?

Además, las credenciales de S3 están ahí mismo y podrían usarse para descargar los archivos.

1 me gusta