package test import ( "fmt" "testing" "github.com/stretchr/testify/require" "gopkg.in/ini.v1" "xorm.io/xorm" "github.com/grafana/grafana/pkg/infra/log" "github.com/grafana/grafana/pkg/services/sqlstore/migrations" "github.com/grafana/grafana/pkg/services/sqlstore/migrator" "github.com/grafana/grafana/pkg/services/sqlstore/sqlutil" "github.com/grafana/grafana/pkg/setting" ) func setupTestDB(t *testing.T) *xorm.Engine { t.Helper() dbType := sqlutil.GetTestDBType() testDB, err := sqlutil.GetTestDB(dbType) require.NoError(t, err) t.Cleanup(testDB.Cleanup) x, err := xorm.NewEngine(testDB.DriverName, testDB.ConnStr) require.NoError(t, err) t.Cleanup(func() { if err := x.Close(); err != nil { fmt.Printf("failed to close xorm engine: %v", err) } }) err = migrator.NewDialect(x.DriverName()).CleanDB(x) require.NoError(t, err) mg := migrator.NewMigrator(x, &setting.Cfg{ Logger: log.New("acmigration.test"), Raw: ini.Empty(), }) migrations := &migrations.OSSMigrations{} migrations.AddMigration(mg) err = mg.Start(false, 0) require.NoError(t, err) return x }