writeRepairMigration method

  1. @override
Future<void> writeRepairMigration(
  1. RepairMigration repairMigration
)
override

Persists the provided repair migration, replacing any existing one.

Throws MigrationRepairWriteException if the repair migration cannot be written.

Implementation

@override
Future<void> writeRepairMigration(RepairMigration repairMigration) async {
  try {
    var repairMigrationDirectory =
        MigrationConstants.repairMigrationDirectory(
          _projectDirectory,
        );
    if (await repairMigrationDirectory.exists()) {
      await repairMigrationDirectory.delete(recursive: true);
    }
    await repairMigrationDirectory.create(recursive: true);

    var repairMigrationFile = File(
      path.join(
        repairMigrationDirectory.path,
        '${repairMigration.version}.sql',
      ),
    );
    await repairMigrationFile.writeAsString(repairMigration.migrationSql);
  } catch (e) {
    throw MigrationRepairWriteException(exception: e.toString());
  }
}