resolveRollbackTarget<TRecord> function
TRecord
resolveRollbackTarget<TRecord>({})
Resolves which active migration should be rolled back.
Implementation
TRecord resolveRollbackTarget<TRecord>({
required List<TRecord> activeHistory,
required String? migrationName,
required String Function(TRecord record) migrationNameOf,
}) {
if (activeHistory.isEmpty) {
throw StateError('No applied migrations available to roll back.');
}
if (migrationName == null) {
return activeHistory.last;
}
for (final record in activeHistory.reversed) {
if (migrationNameOf(record) == migrationName) {
return record;
}
}
throw StateError('Migration is not currently applied: $migrationName');
}