diff --git a/pkg/services/sqlstore/sqlstore.go b/pkg/services/sqlstore/sqlstore.go index 83bc9611091..85637bdbe07 100644 --- a/pkg/services/sqlstore/sqlstore.go +++ b/pkg/services/sqlstore/sqlstore.go @@ -87,18 +87,20 @@ func (ss *SQLStore) Init() error { x = ss.engine dialect = ss.Dialect - migrator := migrator.NewMigrator(ss.engine) - migrations.AddMigrations(migrator) + if !ss.dbCfg.SkipMigrations { + migrator := migrator.NewMigrator(ss.engine) + migrations.AddMigrations(migrator) - for _, descriptor := range registry.GetServices() { - sc, ok := descriptor.Instance.(registry.DatabaseMigrator) - if ok { - sc.AddMigration(migrator) + for _, descriptor := range registry.GetServices() { + sc, ok := descriptor.Instance.(registry.DatabaseMigrator) + if ok { + sc.AddMigration(migrator) + } } - } - if err := migrator.Start(); err != nil { - return err + if err := migrator.Start(); err != nil { + return err + } } // Init repo instances @@ -388,6 +390,7 @@ func (ss *SQLStore) readConfig() { ss.dbCfg.Path = sec.Key("path").MustString("data/grafana.db") ss.dbCfg.CacheMode = sec.Key("cache_mode").MustString("private") + ss.dbCfg.SkipMigrations = sec.Key("skip_migrations").MustBool() } // ITestDB is an interface of arguments for testing db @@ -525,4 +528,5 @@ type DatabaseConfig struct { ConnMaxLifetime int CacheMode string UrlQueryParams map[string][]string + SkipMigrations bool }