MigrationHistory constructor

MigrationHistory({
  1. required Engine engine,
  2. required List<Migration> migrations,
})

Implementation

MigrationHistory({required this.engine, required List<Migration> migrations})
  : migrations = List.unmodifiable(migrations) {
  var previous = 0;
  for (final migration in migrations) {
    if (migration.engine != engine) {
      throw ArgumentError('A migration history cannot mix database engines.');
    }
    if (migration.version <= previous) {
      throw ArgumentError('Migration versions must be strictly increasing.');
    }
    if (migration.fingerprint != migration.reviewedFingerprint) {
      throw StateError(
        'Migration ${migration.version} changed after review.',
      );
    }
    previous = migration.version;
  }
}