readVersion method

  1. @override
Future<MigrationVersionArtifacts?> readVersion(
  1. String version
)
override

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,
  );
}