load static method
Implementation
static Future<MigrationVersion> load({
required String moduleName,
required String versionName,
required Directory projectDirectory,
}) async {
try {
// Get the serialization manager
var serializationManager = Protocol();
// Load the database definition
var databaseDefinitionProjectPath =
MigrationConstants.databaseDefinitionProjectJSONPath(
projectDirectory,
versionName,
);
var databaseDefinitionProject =
await _readMigrationDataFile<DatabaseDefinition>(
databaseDefinitionProjectPath,
serializationManager,
);
var databaseDefinitionPath =
MigrationConstants.databaseDefinitionJSONPath(
projectDirectory,
versionName,
);
var databaseDefinition = await _readMigrationDataFile<DatabaseDefinition>(
databaseDefinitionPath,
serializationManager,
);
// Load the migration definition
var migrationPath = MigrationConstants.databaseMigrationJSONPath(
projectDirectory,
versionName,
);
var migrationDefinition = await _readMigrationDataFile<DatabaseMigration>(
migrationPath,
serializationManager,
);
return MigrationVersion(
moduleName: moduleName,
projectDirectory: projectDirectory,
versionName: versionName,
migration: migrationDefinition,
databaseDefinitionProject: databaseDefinitionProject,
databaseDefinitionFull: databaseDefinition,
);
} catch (e) {
throw MigrationVersionLoadException(
versionName: versionName,
moduleName: moduleName,
exception: e.toString(),
);
}
}