@ -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 )
} )
}
}