mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
	
	
		
			50 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
		
		
			
		
	
	
			50 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
|  | 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 | ||
|  | } |