public void CheckSchemaInfoTable()
        {
            if (_schemaProvider.HasTable(TableName))
            {
                if (!_schemaProvider.HasColumn(TableName, ScopeColumnName))
                {
                    _log.InfoFormat("Adding {0} column to {1}...", ScopeColumnName, TableName);
                    _schemaProvider.AddColumn(TableName, ScopeColumnName, typeof(string), 25, false, true);
                }

                if (!_schemaProvider.IsColumnOfType(TableName, VersionColumnName, "bigint"))
                {
                    _log.InfoFormat("Changing {0} column to {1}...", VersionColumnName, "bigint");
                    _schemaProvider.ChangeColumn(TableName, VersionColumnName, typeof(Int64), 8, false);
                }

                return;
            }

            _log.InfoFormat("Creating {0}...", TableName);

            var columns = new [] {
                new Column(IdColumnName, typeof(Int32), 4, true),
                new Column(VersionColumnName, typeof(Int64), 8, false),
                new Column(ScopeColumnName, typeof(string), 25, false, true)
            };

            _schemaProvider.AddTable(TableName, columns);
        }
 public void AddColumn_WithCurrentValues_AddsAndUpdatesAndAlters()
 {
     using (_mocks.Record())
     {
         _schemaProvider.AddColumn("TheTable", "TheColumn", typeof(Int32), 0, false, true);
         Expect.Call(_databaseProvider.ExecuteNonQuery("UPDATE {0} SET {1} = '{2}'", "TheTable", "TheColumn", 1)).Return(
             true);
         _schemaProvider.ChangeColumn("TheTable", "TheColumn", typeof(Int32), 0, false);
     }
     _target.AddColumn("TheTable", "TheColumn", typeof(Int32), 0, false, 1);
     _mocks.VerifyAll();
 }
Example #3
0
 public void AddColumn(string table, string column, Type type, short size, bool allowNull, object currentValue)
 {
     _schemaProvider.AddColumn(table, column, type, size, false, true);
     if (currentValue != null)
     {
         _databaseProvider.ExecuteNonQuery("UPDATE {0} SET {1} = '{2}'", table, column, currentValue);
     }
     if (!allowNull)
     {
         _schemaProvider.ChangeColumn(table, column, type, 0, allowNull);
     }
 }