|
|
@@ -14,13 +14,15 @@ import (
|
|
|
var indexTypes = []string{"Unknown", "INDEX", "UNIQUE INDEX"}
|
|
|
|
|
|
func TestMigrations(t *testing.T) {
|
|
|
- //log.NewLogger(0, "console", `{"level": 0}`)
|
|
|
-
|
|
|
testDBs := []sqlutil.TestDB{
|
|
|
sqlutil.TestDB_Sqlite3,
|
|
|
}
|
|
|
|
|
|
for _, testDB := range testDBs {
|
|
|
+ sql := `select count(*) as count from migration_log`
|
|
|
+ r := struct {
|
|
|
+ Count int64
|
|
|
+ }{}
|
|
|
|
|
|
Convey("Initial "+testDB.DriverName+" migration", t, func() {
|
|
|
x, err := xorm.NewEngine(testDB.DriverName, testDB.ConnStr)
|
|
|
@@ -28,30 +30,31 @@ func TestMigrations(t *testing.T) {
|
|
|
|
|
|
sqlutil.CleanDB(x)
|
|
|
|
|
|
+ has, err := x.SQL(sql).Get(&r)
|
|
|
+ So(err, ShouldNotBeNil)
|
|
|
+
|
|
|
mg := NewMigrator(x)
|
|
|
AddMigrations(mg)
|
|
|
|
|
|
err = mg.Start()
|
|
|
So(err, ShouldBeNil)
|
|
|
|
|
|
- // tables, err := x.DBMetas()
|
|
|
- // So(err, ShouldBeNil)
|
|
|
- //
|
|
|
- // fmt.Printf("\nDB Schema after migration: table count: %v\n", len(tables))
|
|
|
- //
|
|
|
- // for _, table := range tables {
|
|
|
- // fmt.Printf("\nTable: %v \n", table.Name)
|
|
|
- // for _, column := range table.Columns() {
|
|
|
- // fmt.Printf("\t %v \n", column.String(x.Dialect()))
|
|
|
- // }
|
|
|
- //
|
|
|
- // if len(table.Indexes) > 0 {
|
|
|
- // fmt.Printf("\n\tIndexes:\n")
|
|
|
- // for _, index := range table.Indexes {
|
|
|
- // fmt.Printf("\t %v (%v) %v \n", index.Name, strings.Join(index.Cols, ","), indexTypes[index.Type])
|
|
|
- // }
|
|
|
- // }
|
|
|
- // }
|
|
|
+ has, err = x.SQL(sql).Get(&r)
|
|
|
+ So(err, ShouldBeNil)
|
|
|
+ So(has, ShouldBeTrue)
|
|
|
+ expectedMigrations := mg.MigrationsCount() - 2 //we currently skip to migrations. We should rewrite skipped migrations to write in the log as well. until then we have to keep this
|
|
|
+ So(r.Count, ShouldEqual, expectedMigrations)
|
|
|
+
|
|
|
+ mg = NewMigrator(x)
|
|
|
+ AddMigrations(mg)
|
|
|
+
|
|
|
+ err = mg.Start()
|
|
|
+ So(err, ShouldBeNil)
|
|
|
+
|
|
|
+ has, err = x.SQL(sql).Get(&r)
|
|
|
+ So(err, ShouldBeNil)
|
|
|
+ So(has, ShouldBeTrue)
|
|
|
+ So(r.Count, ShouldEqual, expectedMigrations)
|
|
|
})
|
|
|
}
|
|
|
}
|