Exemplo n.º 1
0
        protected internal TableInfo Build(ISchemaProvider schemaProvider)
        {
            List <Column>      cols = new List <Column>();
            List <PostProcess> post = new List <PostProcess>();

            foreach (ColumnBuilder columnBuilder in _columns)
            {
                Column col = columnBuilder.Build(this, schemaProvider, post);

                if (col.IsPrimaryKey)
                {
                    _pkColumn = columnBuilder;
                }

                cols.Add(col);
            }

            schemaProvider.AddTable(_name, cols.ToArray());

            foreach (PostProcess process in post)
            {
                process.Action();
            }

            return(new TableInfo(_name, _pkColumn.Name, _pkColumn.ColumnType, _pkColumn.Size));
        }
Exemplo n.º 2
0
        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 CheckSchemaInfoTable_DoesNotHaveTable_CreatesTable()
 {
     using (_mocks.Record())
     {
         SetupResult.For(_schemaProvider.HasTable("schema_info")).Return(false);
         _schemaProvider.AddTable("schema_info", null);
         LastCall.IgnoreArguments();
     }
     _target.CheckSchemaInfoTable();
     _mocks.VerifyAll();
 }