readVersion method
Reads the stored artifacts for a migration version.
Returns null if the version cannot be found.
Implementation
@override
Future<MigrationVersionArtifacts?> readVersion(String version) async {
var versionDirectory = MigrationConstants.migrationVersionDirectory(
_projectDirectory,
version,
);
if (!await versionDirectory.exists()) {
return null;
}
var definition = await _readRequiredProtocolFile<DatabaseDefinition>(
MigrationConstants.databaseDefinitionJSONPath(_projectDirectory, version),
);
var migration = await _readRequiredProtocolFile<DatabaseMigration>(
MigrationConstants.databaseMigrationJSONPath(
_projectDirectory,
version,
),
);
return MigrationVersionArtifacts(
version: version,
definitionSql: await _readRequiredFile(
MigrationConstants.databaseDefinitionSQLPath(
_projectDirectory,
version,
),
),
migrationSql: await _readRequiredFile(
MigrationConstants.databaseMigrationSQLPath(_projectDirectory, version),
),
definition: normalizeDefinitionToV2(definition),
projectDefinition: normalizeDefinitionToV2(
await _readRequiredProtocolFile<DatabaseDefinition>(
MigrationConstants.databaseDefinitionProjectJSONPath(
_projectDirectory,
version,
),
),
),
migration: definition.schemaVersion < 2
? normalizeMigrationToV2(migration, definition)
: migration,
);
}