readVersionDefinition method

  1. @override
Future<MigrationVersionDefinition?> readVersionDefinition(
  1. String version
)
override

Reads the stored definition for a migration version.

Does not include the migration SQL. Returns null if the version cannot be found.

Implementation

@override
Future<MigrationVersionDefinition?> readVersionDefinition(
  String version,
) async {
  final versionDirectory = await _resolveVersionDirectory(version);
  if (versionDirectory == null) {
    return null;
  }

  var definition = await _readRequiredProtocolFile<DatabaseDefinition>(
    MigrationConstants.databaseDefinitionJSONPath(_projectDirectory, version),
  );

  var migration = await _readRequiredProtocolFile<DatabaseMigration>(
    MigrationConstants.databaseMigrationJSONPath(
      _projectDirectory,
      version,
    ),
  );

  return MigrationVersionDefinition(
    version: version,
    definition: normalizeDefinitionToV2(definition),
    projectDefinition: normalizeDefinitionToV2(
      await _readRequiredProtocolFile<DatabaseDefinition>(
        MigrationConstants.databaseDefinitionProjectJSONPath(
          _projectDirectory,
          version,
        ),
      ),
    ),
    migration: definition.schemaVersion < 2
        ? normalizeMigrationToV2(migration, definition)
        : migration,
  );
}