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(); }
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); } }