docs: def register_migration(self, migration: 'Migration'):
          """Register a migration.
  
          You can only register migrations in order.  For example, you can
          register migrations from version 1 to 2, then 2 to 3, then 3 to
          4.  You cannot register 1 to 2 followed by 3 to 4.
          """
          if migration.from_ver >= migration.to_ver:
              raise ValueError('Migration cannot downgrade verson')
          if migration.from_ver != self._final_ver:
              raise ValueError('Cannot register disjoint migration')
          self._migrations[migration.from_ver] = migration
          self._final_ver = migration.to_ver