コード例 #1
0
        public void Execute(TaskAttributes taskAttributes, ITaskObserver taskObserver)
        {
            if (!_queryExecutor.CheckDatabaseExists(taskAttributes.ConnectionSettings))
            {
                return;
            }

            var version = _queryExecutor.ReadFirstColumnAsStringArray(taskAttributes.ConnectionSettings, "select @@version")[0];

            taskObserver.Log("Running against: " + version);

            //can't kill connections or enter single user mode in Azure
            var sql = string.Format("drop database [{0}]", taskAttributes.ConnectionSettings.Database);

            if (!version.Contains("SQL Azure"))
            {
                _connectionDropper.Drop(taskAttributes.ConnectionSettings, taskObserver);
                sql = string.Format("ALTER DATABASE [{0}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE drop database [{0}]", taskAttributes.ConnectionSettings.Database);
            }

            string message = string.Format("Dropping database: {0}\n", taskAttributes.ConnectionSettings.Database);

            taskObserver.Log(message);
            try
            {
                _queryExecutor.ExecuteNonQuery(taskAttributes.ConnectionSettings, sql);
            }
            catch (Exception)
            {
                taskObserver.Log(string.Format("Database '{0}' could not be dropped.", taskAttributes.ConnectionSettings.Database));
            }
        }
コード例 #2
0
        public void Execute(TaskAttributes taskAttributes, ITaskObserver taskObserver)
        {
            if (!_queryExecutor.CheckDatabaseExists(taskAttributes.ConnectionSettings))
            {
                taskObserver.Log(string.Format("Database does not exist. Attempting to create database before updating."));
                string sql = string.Format("create database [{0}]", taskAttributes.ConnectionSettings.Database);
                _queryExecutor.ExecuteNonQuery(taskAttributes.ConnectionSettings, sql);
                taskObserver.Log(string.Format("Run scripts in Create folder."));
                _folderExecutor.ExecuteScriptsInFolder(taskAttributes, "Create", taskObserver);
            }
            taskObserver.Log(string.Format("Run scripts in Update folder."));
            _folderExecutor.ExecuteScriptsInFolder(taskAttributes, "Update", taskObserver);

            taskObserver.Log(string.Format("Run scripts in Everytime folder."));
            _folderExecutor.ExecuteChangedScriptsInFolder(taskAttributes, "Everytime", taskObserver);
        }
コード例 #3
0
ファイル: DbUpdater.cs プロジェクト: yolofy/AliaSQL
 /// <summary>
 /// <para>Returns a boolean if the target database exists</para>
 /// </summary>
 /// <param name="connectionString"></param>
 /// <returns>Returns a boolean if the target database exists</returns>
 public bool DatabaseExists(string connectionString)
 {
     return(_queryExecutor.CheckDatabaseExists(_connectionStringGenerator.GetConnectionSettings(connectionString)));
 }