Skip to content

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:

  1. Read the migration definitions of vX and set it as the "working" graph.
  2. Read the subsequent migration definitions, deduplicating definitions that exist in both.
  3. If two migrations have the same metadata but different definitions, determine how to proceed (TBD)
  4. If two migrations have the same metadata, but the second one is a squashed payload, use the original definition.
  5. Continue until we've processed vY