readRepairMigration method

  1. @override
Future<RepairMigration?> readRepairMigration()
override

Reads the currently available repair migration, if any.

Implementation

@override
Future<RepairMigration?> readRepairMigration() async {
  var repairMigrationDirectory = MigrationConstants.repairMigrationDirectory(
    _projectDirectory,
  );
  if (!await repairMigrationDirectory.exists()) {
    return null;
  }

  var repairMigrationFiles = await repairMigrationDirectory
      .list()
      .where((entity) => entity is File)
      .cast<File>()
      .where((file) => path.basename(file.path).endsWith('.sql'))
      .toList();

  if (repairMigrationFiles.isEmpty) {
    return null;
  }

  var migrationSqlFile = repairMigrationFiles.single;
  return RepairMigration(
    version: path.basename(migrationSqlFile.path).split('.').first,
    migrationSql: await migrationSqlFile.readAsString(),
  );
}