mirror of
https://github.com/grafana/grafana.git
synced 2025-07-30 21:42:37 +08:00
Progress on database schema migration for account -> org refactor
This commit is contained in:
60
pkg/services/sqlstore/migrations/migrations_test.go
Normal file
60
pkg/services/sqlstore/migrations/migrations_test.go
Normal file
@ -0,0 +1,60 @@
|
||||
package migrations
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/go-xorm/xorm"
|
||||
"github.com/grafana/grafana/pkg/log"
|
||||
. "github.com/grafana/grafana/pkg/services/sqlstore/migrator"
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore/sqlutil"
|
||||
|
||||
. "github.com/smartystreets/goconvey/convey"
|
||||
)
|
||||
|
||||
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 {
|
||||
|
||||
Convey("Initial "+testDB.DriverName+" migration", t, func() {
|
||||
x, err := xorm.NewEngine(testDB.DriverName, testDB.ConnStr)
|
||||
So(err, ShouldBeNil)
|
||||
|
||||
sqlutil.CleanDB(x)
|
||||
|
||||
mg := NewMigrator(x)
|
||||
mg.LogLevel = log.DEBUG
|
||||
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])
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user