Después de luchar con éxito con el script de migración de vbulletin y observar cómo la migración ha estado funcionando durante 36 horas con un par de millones de publicaciones aún por procesar…
Si no hay contenido o relaciones de datos existentes en Discourse que preservar, ¿hay alguna razón por la que un foro existente que no sea de Discourse no pueda migrarse generando una instantánea de copia de seguridad de Discourse directamente desde los datos de la base de datos de origen?
Tendríamos que escribir el script más o menos desde cero, pero sería de alto nivel similar a los scripts de migración existentes. El script extraería los datos de la base de datos de origen, los procesaría según fuera necesario* y generaría volcados de datos planos para cada tabla de destino de Discourse que podrían usarse para armar el equivalente a una instantánea de copia de seguridad de Discourse. Más o menos, la salida del script se inyectaría en la instantánea de copia de seguridad de una instancia vacía de Discourse.
El * anterior oculta una gran cantidad de trabajo, pero ¿hay algún obstáculo importante que esté pasando por alto? Dado que podemos reutilizar todos los identificadores de datos de origen existentes (ID de tema, ID de hilo, etc.), no creo que el paso de procesamiento requiera mantener una cantidad significativa de estado, pero tal vez me equivoque al respecto. Parece que el trabajo pesado de la lógica de migración estaría en las llamadas a la base de datos de origen.