load static method

Future<MigrationVersion> load({
  1. required String moduleName,
  2. required String versionName,
  3. required Directory projectDirectory,
})

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