/// <summary> /// Configures the database extract /// </summary> private void SetupDatabaseExtract() { Utilities.Logger.LogInformation("Initializing database extract..."); this.scriptProcessors = new Dictionary <SqlFileTypes, ProcessDatabase>(); this.scriptProcessors.Add(SqlFileTypes.Filegroups, new ProcessFilegroups(this.database, this.appendDatabaseNameToScripts, this.appendDatabaseName)); this.scriptProcessors.Add(SqlFileTypes.PartitionFunctions, new ProcessPartitionFunctions(this.database, this.appendDatabaseNameToScripts, this.appendDatabaseName)); this.scriptProcessors.Add(SqlFileTypes.PartitionSchemes, new ProcessPartitionScheme(this.database, this.appendDatabaseNameToScripts, this.appendDatabaseName)); this.scriptProcessors.Add(SqlFileTypes.FullTextCatalogs, new ProcessFullTextCatalogs(this.database, this.appendDatabaseNameToScripts, this.appendDatabaseName)); this.scriptProcessors.Add(SqlFileTypes.Schemas, new ProcessSchema(this.database, this.appendDatabaseNameToScripts, this.appendDatabaseName)); this.scriptProcessors.Add(SqlFileTypes.ClrAssemblies, new ProcessClrAssemblies(this.database, this.appendDatabaseNameToScripts, this.appendDatabaseName)); ProcessTables et = new ProcessTables(this.database, this.appendDatabaseNameToScripts, this.appendDatabaseName); this.scriptProcessors.Add(SqlFileTypes.Tables, et); this.scriptProcessors.Add(SqlFileTypes.Routes, new ProcessRoutes(this.database, this.appendDatabaseNameToScripts, this.appendDatabaseName)); this.scriptProcessors.Add(SqlFileTypes.Messages, new ProcessMessages(this.database, this.appendDatabaseNameToScripts, this.appendDatabaseName)); this.scriptProcessors.Add(SqlFileTypes.Contracts, new ProcessContracts(this.database, this.appendDatabaseNameToScripts, this.appendDatabaseName)); this.scriptProcessors.Add(SqlFileTypes.BrokerQueue, new ProcessQueues(this.database, this.appendDatabaseNameToScripts, this.appendDatabaseName)); this.scriptProcessors.Add(SqlFileTypes.Services, new ProcessServices(this.database, this.appendDatabaseNameToScripts, this.appendDatabaseName)); ProcessFunctions ef = new ProcessFunctions(this.database, this.appendDatabaseNameToScripts, this.appendDatabaseName); this.scriptProcessors.Add(SqlFileTypes.Functions, ef); ProcessViews ev = new ProcessViews(this.database, this.appendDatabaseNameToScripts, this.appendDatabaseName); this.scriptProcessors.Add(SqlFileTypes.Views, ev); ProcessClusteredConstraints ecc = new ProcessClusteredConstraints(this.database, this.appendDatabaseNameToScripts, this.appendDatabaseName); this.scriptProcessors.Add(SqlFileTypes.ClusteredConstraints, ecc); ecc.Tables = et; ecc.Views = ev; ProcessConstraints ec = new ProcessConstraints(this.database, this.appendDatabaseNameToScripts, this.appendDatabaseName); this.scriptProcessors.Add(SqlFileTypes.Constraints, ec); ec.Tables = et; ec.Views = ev; this.scriptProcessors.Add(SqlFileTypes.FullTextIndexes, new ProcessFullTextIndexes(this.database, this.appendDatabaseNameToScripts, this.appendDatabaseName)); ProcessRoles er = new ProcessRoles(this.database, this.appendDatabaseNameToScripts, this.appendDatabaseName); this.scriptProcessors.Add(SqlFileTypes.Roles, er); this.scriptProcessors.Add(SqlFileTypes.Circular, new ProcessCircular(this.database, ef, ev, this.appendDatabaseNameToScripts, this.appendDatabaseName)); this.scriptProcessors.Add(SqlFileTypes.Procedures, new ProcessProcedures(this.database, this.appendDatabaseNameToScripts, this.appendDatabaseName)); this.scriptProcessors.Add(SqlFileTypes.Synonyms, new ProcessSynonyms(this.database, this.appendDatabaseNameToScripts, this.appendDatabaseName, this.GenerateDropForSynonyms)); this.scriptProcessors.Add(SqlFileTypes.Triggers, new ProcessTriggers(this.database, this.appendDatabaseNameToScripts, this.appendDatabaseName)); foreach (ProcessDatabase es in this.scriptProcessors.Values) { es.SplitDropToSeperateFile = this.SplitDropToSeperateFile; } }
/// <summary> /// Initializes a new instance of the ProcessCircular class /// </summary> /// <param name="targetDatabase">The database against which the processor will execute</param> /// <param name="functions">The functions associated with the database</param> /// <param name="views">The views associated with the database</param> /// <param name="appendDatabaseNameToScripts">Indicates whether or not the database name will be appended to the script output</param> /// <param name="appendDatabaseName">The name to append</param> internal ProcessCircular(Database targetDatabase, ProcessFunctions functions, ProcessViews views, bool appendDatabaseNameToScripts, string appendDatabaseName) : base(targetDatabase, appendDatabaseNameToScripts, appendDatabaseName) { this.functions = functions; this.views = views; }
/// <summary> /// Initializes a new instance of the ProcessCircular class /// </summary> /// <param name="targetDatabase">The database against which the processor will execute</param> /// <param name="functions">The functions associated with the database</param> /// <param name="views">The views associated with the database</param> internal ProcessCircular(Database targetDatabase, ProcessFunctions functions, ProcessViews views) : this(targetDatabase, functions, views, false, string.Empty) { }