applyRepairMigration method
Applies the repair migration to the database.
Implementation
Future<String?> applyRepairMigration(DatabaseSession session) async {
var repairMigration = await _artifactStore.readRepairMigration();
if (repairMigration == null) {
return null;
}
String? appliedVersion = repairMigration.version;
await _withMigrationLock(session, (transaction) async {
var appliedRepairMigration = await loadInstalledRepairMigration(
session,
transaction: transaction,
);
if (appliedRepairMigration != null &&
appliedRepairMigration.version == repairMigration.version) {
appliedVersion = null;
return;
}
await session.db.unsafeSimpleExecute(
repairMigration.migrationSql,
transaction: transaction,
);
await _updateState(session, transaction);
});
return appliedVersion;
}