Nachdem wir erfolgreich mit dem vbulletin-Migrationsskript gekämpft haben und die Migration nun seit 36 Stunden läuft, wobei noch ein paar Millionen Beiträge übrig sind…
Wenn keine bestehenden Discourse-Inhalte oder Datenbeziehungen erhalten bleiben müssen, gibt es dann einen Grund, warum ein bestehendes Nicht-Discourse-Forum nicht migriert werden könnte, indem direkt aus den Quelldatenbankdaten ein Discourse-Backup-SQL-Snapshot generiert wird?
Wir müssten das Skript mehr oder weniger von Grund auf neu schreiben, aber es wäre auf hoher Ebene ähnlich wie die bestehenden Migrationsskripte. Das Skript würde die Daten aus der Quelldatenbank abrufen, sie nach Bedarf aufbereiten* und flache Datendumps für jede Ziel-Discourse-Tabelle generieren, die verwendet werden könnten, um das Äquivalent eines Discourse-Backup-Snapshots zusammenzustellen. Mehr oder weniger würde die Skriptausgabe in den Backup-Snapshot einer leeren Discourse-Instanz eingespeist werden.
Das * oben verbirgt eine Menge Arbeit, aber gibt es größere Hürden, die ich übersehe? Da wir alle vorhandenen Quellendatenbezeichner (Themen-ID, Thread-ID usw.) wiederverwenden können, glaube ich nicht, dass der Aufbereitungsschritt eine signifikante Menge an Zustand erfordert, aber vielleicht liege ich da falsch. Es scheint, dass die Hauptarbeit der Migrationslogik in den Datenbankaufrufen an die Quelldatenbank liegen würde.