Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 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);
        }
Esempio n. 5
0
        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);
        }