private DbObjectScripterResult ScriptObjects(DbObjectScripterArgs args) { DbObjectScripterResult result = new DbObjectScripterResult(); _scripter = new DbObjectScripter(args.cp); _scripter.ScriptingProgress += new ScriptingProgressDelegate(OnScriptingProgress); _scripter.ObjectTypes = args.objectTypes; _scripter.DbObjectSearchType = args.searchType; _scripter.SearchText = args.searchText; string script = String.Empty; switch (args.destination) { case ScriptDestination.Window: result.errors = _scripter.ScriptObjects(out script); result.script = script; break; case ScriptDestination.File: result.errors = _scripter.ScriptObjects(out script); result.script = script; break; case ScriptDestination.Folder: result.errors = _scripter.ScriptObjectsToFolder(args.path); break; } return(result); }
private void DisposeScripter() { if (_scripter != null) { _scripter.Dispose(); _scripter = null; } }
public DatabaseUpgradeResult ScriptAll() { this.Log.WriteInformation("Scripting all database object definitions..."); if (this.ConnectionString == null) { return(new DatabaseUpgradeResult(Enumerable.Empty <SqlScript>(), false, new Exception("connectionString could not be determined"))); } var scripter = new DbObjectScripter(this.ConnectionString, m_options, this.Log); scripter.ScriptAll(); return(new DatabaseUpgradeResult(new List <SqlScript>(), true, null)); }
public DatabaseUpgradeResult Run(string[] args) { DatabaseUpgradeResult result = null; if (args.Any(a => "--scriptAllDefinitions".Equals(a.Trim(), StringComparison.InvariantCultureIgnoreCase))) { result = ScriptAll(); } else { var scriptsToExecute = m_engine.GetScriptsToExecute(); if (args.Any(a => "--whatIf".Equals(a.Trim(), StringComparison.InvariantCultureIgnoreCase))) { result = new DatabaseUpgradeResult(Enumerable.Empty <SqlScript>(), true, null); this.Log.WriteWarning("WHATIF Mode!"); this.Log.WriteWarning("The following scripts would have been executed:"); scriptsToExecute.ForEach(r => this.Log.WriteWarning(r.Name)); } else { var executedScriptsBeforeUpgrade = this.m_engine.GetExecutedScripts(); result = m_engine.PerformUpgrade(); if (args.Any(a => "--fromconsole".Equals(a.Trim(), StringComparison.InvariantCultureIgnoreCase))) { var scripter = new DbObjectScripter(this.ConnectionString, this.m_options, this.Log); if (result.Successful) { this.Log.WriteInformation("Scripting changed database objects..."); var scriptorResult = scripter.ScriptMigrationTargets(scriptsToExecute); } else { this.Log.WriteInformation("Scripting successfully changed database objects..."); var executedScriptsAfterUpgrade = this.m_engine.GetExecutedScripts(); var appliedScripts = scriptsToExecute.Where(s => executedScriptsAfterUpgrade.Except(executedScriptsBeforeUpgrade) .Contains(s.Name)); var scriptorResult = scripter.ScriptMigrationTargets(appliedScripts); } } } } return(result); }
public DatabaseUpgradeResult Run(string[] args) { DatabaseUpgradeResult result = null; if (args.Any(a => "--scriptAllDefinitions".Equals(a.Trim(), StringComparison.InvariantCultureIgnoreCase))) { result = ScriptAll(); } else { var scriptsToExecute = m_engine.GetScriptsToExecute(); if (args.Any(a => "--whatIf".Equals(a.Trim(), StringComparison.InvariantCultureIgnoreCase))) { result = new DatabaseUpgradeResult(Enumerable.Empty <SqlScript>(), true, null); this.Log.WriteWarning("WHATIF Mode!"); this.Log.WriteWarning("The following scripts would have been executed:"); scriptsToExecute.ForEach(r => this.Log.WriteWarning(r.Name)); } else { var scripter = new DbObjectScripter(ConnectionString, m_options, Log); scripter.StartWatch(); result = m_engine.PerformUpgrade(); if (args.Any(a => "--fromconsole".Equals(a.Trim(), StringComparison.InvariantCultureIgnoreCase))) { this.Log.WriteInformation("Scripting changed database objects..."); scripter.ScriptWatched(); } } } return(result); }