public override void OnBeforeStage() { base.OnBeforeStage(); var metadataMapping = new MetadataMapping(UpgradeContext.Services.StorageDriver, UpgradeContext.Services.NameBuilder); var metadataTasks = UpgradeContext.Services.MappingResolver.GetMetadataTasks(); var executor = new Providers.SqlExecutor(UpgradeContext.Services.StorageDriver, UpgradeContext.Services.Connection); var metadataSet = new MetadataSet(); var isRecreate = UpgradeContext.NodeConfiguration.UpgradeMode == DomainUpgradeMode.Recreate; var extractor = new MetadataExtractor(metadataMapping, executor); foreach (var sqlExtractionTask in metadataTasks) { if (!isRecreate) { extractor.ExtractAssemblies(metadataSet, sqlExtractionTask); extractor.ExtractTypes(metadataSet, sqlExtractionTask); extractor.ExtractExtensions(metadataSet, sqlExtractionTask); } } ValidateMetadataTables(metadataSet, internalStage, isRecreate); ValidateUserTables(metadataSet, internalStage, isRecreate); if (UpgradeContext.Stage == UpgradeStage.Upgrading) { internalStage = Stage.AfterUpgrading; } else { internalStage = Stage.Final; } }
public override void OnStage() { base.OnStage(); // here, for every custom handler or not system upgrade handler, we have updated metadata // also here we have a session and selected storage node for it // so we can finally validate that the metadata of the building node is saved into right database/scheme pair var metadataMapping = new MetadataMapping(UpgradeContext.Services.StorageDriver, UpgradeContext.Services.NameBuilder); var metadataTasks = UpgradeContext.Services.MappingResolver.GetMetadataTasks(); var executor = new Providers.SqlExecutor(UpgradeContext.Services.StorageDriver, UpgradeContext.Services.Connection); var metadataSet = new MetadataSet(); var isRecreate = UpgradeContext.NodeConfiguration.UpgradeMode == DomainUpgradeMode.Recreate; var extractor = new MetadataExtractor(metadataMapping, executor); foreach (var sqlExtractionTask in metadataTasks) { extractor.ExtractAssemblies(metadataSet, sqlExtractionTask); extractor.ExtractTypes(metadataSet, sqlExtractionTask); extractor.ExtractExtensions(metadataSet, sqlExtractionTask); } ValidateMetadataTables(metadataSet, internalStage, isRecreate); ValidateUserTables(metadataSet, internalStage, isRecreate); }