Migration is mostly deciding what not to bring
The technical part is the easy part. The editorial part is the work.
Moving a learning platform to new infrastructure or new software is presented as a technical project and is mostly not one. The scripts that move data are well understood. What consumes the time is the accumulated judgement: eleven years of courses, of which some are live, some are dormant but might return, some are archived copies of live ones, and some are nobody's and cannot be deleted because nobody will say so.
The instinct is to bring everything, because bringing everything requires no decisions and no arguments. It is also how a fresh system arrives on day one already carrying the confusion of the old one, and it doubles the migration's cost while halving the benefit. The alternative is to make somebody responsible for each category of content and ask them, in writing, whether it comes.
There is a middle path that works well in practice. Bring the live material into the new system properly, and keep the old system readable but frozen for a defined period. That converts a set of irreversible decisions into reversible ones, and it lets a course that turns out to matter be recovered in a week rather than argued about in advance.
The one thing that cannot be deferred is the record of assessment. Whatever the retention obligation is in your context, it applies to the evidence, not to the software that happens to hold it. Establish where that evidence will live after the migration before the migration starts, and confirm it is readable there without the old system running.
The other decision that should be made early and is usually made late concerns identifiers. Learner accounts in the new system will be matched to the old ones by something, and whatever that something is becomes load-bearing for the whole migration. Where it is an email address, people change theirs. Where it is a name, duplicates and spelling variants defeat it. A stable internal identifier is the only reliable answer, and if the old system did not have one, generating it before the move is far cheaper than reconciling by hand afterwards.