/// <summary> /// Checks existence and validity of the public database... /// </summary> public static void Execute(string connectionString, int commandTimeout, int maxDegreeOfParallelism, Pipelines pipelineOptions) { _log.Debug("Checking existence and validity of public database"); // Check that db is the current version... var md = new MetaDataSchema(connectionString, commandTimeout, maxDegreeOfParallelism, pipelineOptions); int ver = md.GetDatabaseVersion(); _log.DebugFormat("Public database version = {0}", ver); if (ver > 0 && ver != MetaDataSchema.LatestPublicDbVersion) { throw new ApplicationException($"Public database version = {ver}, expecting {MetaDataSchema.LatestPublicDbVersion}"); } _log.Debug("Public database version is correct"); }
public void CheckIdenticalAppKey(Guid adminAppKey) { if (DatabaseUtils.DatabaseExists(PublicConnectionString, Timeouts.PublicDatabase)) { var tables = DatabaseUtils.GetTablesInSchema( PublicConnectionString, Timeouts.PublicDatabase, false, MetaDataSchema.MetadataSchemaName); if (tables.Any()) { MetaDataSchema mdSchema = new MetaDataSchema( PublicConnectionString, Timeouts.PublicDatabase, _configuration.MaxDegreeOfParallelism, _configuration.Pipelines); Guid existingAppKey = mdSchema.GetApplicationKey(); if (existingAppKey != adminAppKey) { throw new ApplicationException( $"Application key in Public database ({DatabaseUtils.GetConnectionDescription(PublicConnectionString)}) is not the same as that in the Admin database ({DatabaseUtils.GetConnectionDescription(AdminConnectionString)})"); } } } }
private static void CreateMetaDataTables(Guid appKey, string connectionString, int timeout, int maxDegreeOfParallelism, Pipelines pipelineOptions) { MetaDataSchema md = new MetaDataSchema(connectionString, timeout, maxDegreeOfParallelism, pipelineOptions); md.CreateTables(appKey); }