Dopo aver combattuto con successo con lo script di migrazione di vbulletin, e aver visto la migrazione procedere per 36 ore con ancora un paio di milioni di post da elaborare…
Se non ci sono contenuti o relazioni di dati Discourse esistenti da preservare, c’è qualche motivo per cui un forum esistente non-Discourse non potrebbe essere migrato generando uno snapshot di backup SQL di Discourse direttamente dai dati del database di origine?
Dovremmo scrivere lo script più o meno da zero, ma sarebbe a livello generale simile agli script di migrazione esistenti. Lo script preleverebbe i dati dal database di origine, li elaborerebbe secondo necessità*, e genererebbe dump di dati piatti per ogni tabella di destinazione di Discourse che potrebbero essere utilizzati per comporre l’equivalente di uno snapshot di backup di Discourse. Più o meno, l’output dello script verrebbe iniettato nello snapshot di backup di un’istanza Discourse vuota.
L’* sopra nasconde un sacco di lavoro, ma c’è qualche ostacolo importante che sto trascurando? Poiché possiamo riutilizzare tutti gli identificatori di dati sorgente esistenti (id argomento, id thread, ecc.), non penso che il passaggio di elaborazione richieda di mantenere uno stato significativo, ma forse mi sbaglio. Sembra che il lavoro più pesante della logica di migrazione sarebbe nelle chiamate al database di origine.