public static void UpdateSchema(SchemaDriver schemaDriver, string connectionString, IOutput output, SchemaChangeOptions options, IEnumerable <ISchemaProvider> providers) { var allProviders = essentialProviders.AddRange(providers); var preProviders = allProviders.OfType <IPrerequisiteSchemaProvider>(); var normalProviders = from provider in allProviders let pre = provider as IPrerequisiteSchemaProvider where pre == null || pre.IncludeInNormalRun select provider; using (var progress = output.ProgressBlock()) { var currentState = DatabaseState.Empty; var objectTypes = ImmutableHashSet <ObjectType> .Empty; StateStorage storage = null; var chunks = progress.GetChunks(1, 19, providers == null ? 0 : 80).ToList(); output.Message("Connecting to database..."); using (var connection = SchemaConnection.Create(schemaDriver, connectionString)) { connection.AcquireSchemaUpdateLock(output, options.SchemaUpdateLockTimeout); output.Verbose("Connected to database."); chunks[0].ProgressComplete(); runSteps(connection, chunks[1], options, "Preparation", preProviders, ref currentState, ref objectTypes, ref storage); runSteps(connection, chunks[2], options, "Processing", normalProviders, ref currentState, ref objectTypes, ref storage); } } }
public IEnumerable <ObjectType> GetObjectTypes(SchemaDriver schemaDriver) { yield return(PendingReorderTableType.Instance); yield return(BeforeStatementType.Instance); yield return(CompletionType.Instance); }
public IEnumerable <ObjectType> GetObjectTypes(SchemaDriver schemaDriver) { // Types that are required for the creation of the tables that nrdo uses to track its own state. // Note: Do not remove any types from this list that have ever been in it: // any types that have ever been here need to be able to drop themselves on upgrades from versions that // used them, even if they are no longer used for these tables. yield return(TableType.Instance); yield return(FieldType.Instance); yield return(UniqueIndexType.Instance); yield return(FkeyType.Instance); }
public IEnumerable <ObjectType> GetObjectTypes(SchemaDriver schemaDriver) { yield return(BeforeStatementType.Instance); yield return(TableType.Instance); yield return(TableRenameType.Instance); yield return(FieldType.Instance); yield return(UniqueIndexType.Instance); yield return(NonUniqueIndexType.Instance); yield return(FulltextCatalogType.Instance); yield return(FulltextIndexType.Instance); yield return(FkeyType.Instance); if (schemaDriver.IsSequenceUsed) { yield return(SequenceType.Instance); } if (schemaDriver.IsTriggerUsedForSequence) { yield return(TriggerType.Instance); } yield return(QueryType.Instance); yield return(PreUpgradeHookType.Instance); if (preserveColumnOrder) { yield return(FieldOrderSensitivityType.Instance); } }
public static void UpdateSchema(SchemaDriver schemaDriver, string connectionString, IOutput output, SchemaChangeOptions options, params ISchemaProvider[] providers) { UpdateSchema(schemaDriver, connectionString, output, options, providers.AsEnumerable()); }
public static void UpdateSchema(SchemaDriver schemaDriver, string connectionString, IOutput output, IEnumerable <ISchemaProvider> providers) { UpdateSchema(schemaDriver, connectionString, output, SchemaChangeOptions.Default, providers); }
public IEnumerable <ObjectType> GetObjectTypes(SchemaDriver schemaDriver) { yield return(new OldVersionCacheMigrationType()); }
public SqlTranslator(SchemaDriver dbDriver, Func <string, string> getSequenceName) { this.dbDriver = dbDriver; this.getSequenceName = getSequenceName; }