loadHistory method
Loads the full migration history ordered by application time.
Implementation
List<SqliteMigrationRecord> loadHistory(sqlite.Database database) {
ensureHistoryTable(database);
final rows = database.select('''
SELECT name, applied_at, statement_count, kind, target_name,
provider, checksum, before_schema, after_schema,
warnings, rebuild_required
FROM "$historyTableName"
ORDER BY applied_at ASC, name ASC
''');
return rows
.map(
(row) => SqliteMigrationRecord(
name: row['name'] as String,
appliedAt: DateTime.parse(row['applied_at'] as String),
statementCount: row['statement_count'] as int,
kind: _parseRecordKind(row['kind'] as String? ?? 'apply'),
warnings: decodeMigrationWarnings(row['warnings'] as String?),
rebuildRequired: (row['rebuild_required'] as int? ?? 0) != 0,
targetName: row['target_name'] as String?,
provider: row['provider'] as String?,
checksum: row['checksum'] as String?,
beforeSchema: row['before_schema'] as String?,
afterSchema: row['after_schema'] as String?,
),
)
.toList(growable: false);
}