RFC 697: Support reconstruction of migration definitions over time
Created by: efritz
See RFC 697: Multiple version upgrades.
Write utilities in the migration definitions package that constructs a migration graph between arbitrary points in time. This process must union and de-duplicate migration definitions so that a single, unified migration dependency graph is constructed. For a migration between vX and vY, we need to:
- Read the migration definitions of vX and set it as the "working" graph.
- Read the subsequent migration definitions, deduplicating definitions that exist in both.
- If two migrations have the same metadata but different definitions, determine how to proceed (TBD)
- If two migrations have the same metadata, but the second one is a squashed payload, use the original definition.
- Continue until we've processed vY