예제 #1
0
        public void SaveAppliedScript(AppliedScript appliedScript)
        {
            appliedScripts.Add(appliedScript);
            saved.Add(appliedScript);

            if (failSaving.Contains(appliedScript.Name))
            {
                throw new Exception("I Cease to Live!");
            }
        }
예제 #2
0
        public void SaveAppliedScript(AppliedScript appliedScript)
        {
            using (SqlTransaction transaction = connection.BeginTransaction())
            {
                SqlCommand save = new SqlCommand(SchemaHistorySql.SaveAppliedScript.Sql, connection, transaction);
                save.Parameters.AddWithValue(SchemaHistorySql.SaveAppliedScript.Args.Name, appliedScript.Name);
                save.Parameters.AddWithValue(SchemaHistorySql.SaveAppliedScript.Args.Deployed, appliedScript.DeployTime);
                save.Parameters.Add(SchemaHistorySql.SaveAppliedScript.Args.RolledBack, SqlDbType.DateTime);
                if (appliedScript.RollbackTime.HasValue)
                {
                    save.Parameters[SchemaHistorySql.SaveAppliedScript.Args.RolledBack].Value = appliedScript.RollbackTime.Value;
                }
                else
                {
                    save.Parameters[SchemaHistorySql.SaveAppliedScript.Args.RolledBack].Value = DBNull.Value;
                }

                save.ExecuteNonQuery();
                transaction.Commit();
            }
        }
예제 #3
0
        public AppliedScript GetDeployedScript(string name)
        {
            SqlCommand get = new SqlCommand(SchemaHistorySql.GetDeployedScript.Sql, connection);

            get.Parameters.AddWithValue(SchemaHistorySql.SaveAppliedScript.Args.Name, name);
            using (var raw = get.ExecuteReader())
            {
                if (!raw.Read())
                {
                    return(null);
                }

                DateTime      deployed = raw.GetDateTime(SchemaHistorySql.GetDeployedScript.Cols.Deployed);
                AppliedScript result   = new AppliedScript(name, deployed, null);

                if (raw.Read())
                {
                    throw new Exception("Multiple deployed scripts named: " + name + ".");
                }

                return(result);
            }
        }
예제 #4
0
        private void AddRolledBackScriptToHistory(string name)
        {
            var appliedScript = new AppliedScript(name, clock.UtcNow, clock.UtcNow);

            schemaHistory.AddInitial(appliedScript);
        }
예제 #5
0
        private void RecordPriorDeployment(string name)
        {
            var appliedScript = new AppliedScript(name, deployTime, null);

            schemaHistory.AddInitial(appliedScript);
        }
예제 #6
0
 public void AddInitial(AppliedScript appliedScript)
 {
     appliedScripts.Add(appliedScript);
 }