示例#1
0
        public async Task TestCreateTable()
        {
            this.BeforeEach();

            var dbName     = "db1";
            var tableName  = "posts";
            var columnName = "id";

            EasyMig.CreateTable(tableName)
            .AddColumn(columnName, ColumnType.Int(true))
            .AddColumn("title");

            var query = EasyMig.ToMySql.GetMigrationQuery();


            EasyMig.ToMySql.ExecuteQuery(query, completeConnectionString);

            await Task.Delay(200);

            Assert.IsTrue(EasyMig.Information.MySql.TableExists(dbName, tableName, connectionString));

            var table = EasyMig.Information.MySql.GetTable(dbName, tableName, connectionString);

            Assert.IsNotNull(table);
            Assert.IsTrue(table.HasColumn(columnName));
        }
示例#2
0
        public void CreateAndGetTableInfos()
        {
            var dbName     = "sql_db1";
            var tableName  = "sql_users";
            var columnName = "id";

            EasyMig.CreateTable(tableName)
            .AddPrimaryKey(columnName)
            .AddColumn("username")
            .AddColumn("age", ColumnType.Int(), true);

            EasyMig.ToSqlServer.DoMigrationsFromMemory(connectionString);

            var table = EasyMig.Information.SqlServer.GetTable(dbName, tableName, connectionString);

            Assert.IsNotNull(table);
        }
示例#3
0
        public void TestColumnTypes()
        {
            this.BeforeEach();

            EasyMig.CreateTable("column_test")
            .AddColumn("my_char", ColumnType.Char(50))
            .AddColumn("my_varchar", ColumnType.VarChar(50))
            .AddColumn("my_text", ColumnType.Text())
            .AddColumn("my_longtext", ColumnType.LongText())
            .AddColumn("my_tiny", ColumnType.TinyInt())
            .AddColumn("my_small", ColumnType.SmallInt())
            .AddColumn("my_int", ColumnType.Int())
            .AddColumn("my_big", ColumnType.BigInt())
            .AddColumn("my_bit", ColumnType.Bit())
            .AddColumn("my_float", ColumnType.Float(2))
            .AddColumn("my_datetime", ColumnType.DateTime())
            .AddColumn("my_date", ColumnType.Date())
            .AddColumn("my_time", ColumnType.Time())
            .AddColumn("my_timestamp", ColumnType.Timestamp())
            .AddColumn("my_blob", ColumnType.Blob());

            EasyMig.ToMySql.DoMigrationsFromMemory(this.completeConnectionString);

            var result = EasyMig.Information.MySql.GetTable("db1", "column_test", this.completeConnectionString);

            Assert.AreEqual("char", (string)result.Columns["my_char"]["DATA_TYPE"]);
            Assert.AreEqual((UInt64)50, (UInt64)result.Columns["my_char"]["CHARACTER_MAXIMUM_LENGTH"]);
            Assert.AreEqual("varchar", (string)result.Columns["my_varchar"]["DATA_TYPE"]);
            Assert.AreEqual((UInt64)50, (UInt64)result.Columns["my_varchar"]["CHARACTER_MAXIMUM_LENGTH"]);
            Assert.AreEqual("text", (string)result.Columns["my_text"]["DATA_TYPE"]);
            Assert.AreEqual("longtext", (string)result.Columns["my_longtext"]["DATA_TYPE"]);
            Assert.AreEqual("tinyint", (string)result.Columns["my_tiny"]["DATA_TYPE"]);
            Assert.AreEqual("smallint", (string)result.Columns["my_small"]["DATA_TYPE"]);
            Assert.AreEqual("int", (string)result.Columns["my_int"]["DATA_TYPE"]);
            Assert.AreEqual("bigint", (string)result.Columns["my_big"]["DATA_TYPE"]);
            Assert.AreEqual("bit", (string)result.Columns["my_bit"]["DATA_TYPE"]);
            Assert.AreEqual("float", (string)result.Columns["my_float"]["DATA_TYPE"]);
            Assert.AreEqual("datetime", (string)result.Columns["my_datetime"]["DATA_TYPE"]);
            Assert.AreEqual("date", (string)result.Columns["my_date"]["DATA_TYPE"]);
            Assert.AreEqual("time", (string)result.Columns["my_time"]["DATA_TYPE"]);
            Assert.AreEqual("timestamp", (string)result.Columns["my_timestamp"]["DATA_TYPE"]);
            Assert.AreEqual("blob", (string)result.Columns["my_blob"]["DATA_TYPE"]);
        }
示例#4
0
        public void CreateAndGetTableInfos()
        {
            this.BeforeEach();

            var dbName     = "db1";
            var tableName  = "users";
            var columnName = "id";

            EasyMig.CreateTable(tableName)
            .AddPrimaryKey(columnName)
            .AddColumn("username")
            .AddColumn("age", ColumnType.Int(), true);

            EasyMig.ToMySql.DoMigrationsFromMemory(completeConnectionString);

            var table = EasyMig.Information.MySql.GetTable(dbName, tableName, connectionString);

            Assert.IsNotNull(table);
        }
示例#5
0
        public async Task TestCreateTable()
        {
            var dbName     = "sql_db1";
            var tableName  = "sql_posts";
            var columnName = "id";

            EasyMig.CreateTable(tableName)
            .AddColumn(columnName, ColumnType.Int(true))
            .AddColumn("title");

            EasyMig.ToSqlServer.DoMigrationsFromMemory(connectionString);

            await Task.Delay(200);

            Assert.IsTrue(EasyMig.Information.SqlServer.TableExists(dbName, tableName, connectionString));

            var table = EasyMig.Information.SqlServer.GetTable(dbName, tableName, connectionString);

            Assert.IsNotNull(table);
            Assert.IsTrue(table.HasColumn(columnName));
        }
示例#6
0
        public void TestDefaultValues()
        {
            this.BeforeEach();

            EasyMig.CreateTable("column_default_values")
            .AddColumn("my_char", ColumnType.Char(50), true, "default char")
            .AddColumn("my_varchar", ColumnType.VarChar(50), true, "default varchar")
            .AddColumn("my_text", ColumnType.Text())
            .AddColumn("my_longtext", ColumnType.LongText())
            .AddColumn("my_tiny", ColumnType.TinyInt(), true, 10)     // int or string
            .AddColumn("my_small", ColumnType.SmallInt(), true, 20)
            .AddColumn("my_int", ColumnType.Int(), true, 30)
            .AddColumn("my_big", ColumnType.BigInt(), true, 40)
            .AddColumn("my_bit", ColumnType.Bit(), true, 1)                             // int
            .AddColumn("my_float", ColumnType.Float(2), true, "10.99")
            .AddColumn("my_datetime", ColumnType.DateTime(), true, "CURRENT_TIMESTAMP") // CURRENT_TIMESTAMP || NULL
            .AddColumn("my_date", ColumnType.Date())
            .AddColumn("my_time", ColumnType.Time())
            .AddColumn("my_timestamp", ColumnType.Timestamp(), true, "CURRENT_TIMESTAMP")
            .AddColumn("my_blob", ColumnType.Blob());

            EasyMig.ToMySql.DoMigrationsFromMemory(this.completeConnectionString);

            var result = EasyMig.Information.MySql.GetTable("db1", "column_default_values", this.completeConnectionString);

            Assert.AreEqual("default char", (string)result.Columns["my_char"]["COLUMN_DEFAULT"]);
            Assert.AreEqual("default varchar", (string)result.Columns["my_varchar"]["COLUMN_DEFAULT"]);
            Assert.AreEqual("10", (string)result.Columns["my_tiny"]["COLUMN_DEFAULT"]);
            Assert.AreEqual("20", (string)result.Columns["my_small"]["COLUMN_DEFAULT"]);
            Assert.AreEqual("30", (string)result.Columns["my_int"]["COLUMN_DEFAULT"]);
            Assert.AreEqual("40", (string)result.Columns["my_big"]["COLUMN_DEFAULT"]);
            Assert.AreEqual("b'1'", (string)result.Columns["my_bit"]["COLUMN_DEFAULT"]);
            Assert.AreEqual("10.99", (string)result.Columns["my_float"]["COLUMN_DEFAULT"]);
            Assert.AreEqual("CURRENT_TIMESTAMP", (string)result.Columns["my_datetime"]["COLUMN_DEFAULT"]);
            Assert.AreEqual("CURRENT_TIMESTAMP", (string)result.Columns["my_timestamp"]["COLUMN_DEFAULT"]);
        }