diff --git a/internal/database/database.go b/internal/database/database.go index 060402caf..ea28dab1a 100644 --- a/internal/database/database.go +++ b/internal/database/database.go @@ -128,6 +128,7 @@ func NewConnection(w logger.Writer) (*gorm.DB, error) { TwoFactors = &twoFactorsStore{DB: db} Users = NewUsersStore(db) + Handle = &DB{db: db} return db, nil } @@ -148,11 +149,6 @@ type DB struct { // single-thread process). var Handle *DB -// SetHandle updates the global database handle with the given connection. -func SetHandle(db *gorm.DB) { - Handle = &DB{db: db} -} - func (db *DB) AccessTokens() *AccessTokensStore { return newAccessTokensStore(db.db) } diff --git a/internal/database/models.go b/internal/database/models.go index 96f882ebf..0ea9875d6 100644 --- a/internal/database/models.go +++ b/internal/database/models.go @@ -181,21 +181,21 @@ func SetEngine() (*gorm.DB, error) { return NewConnection(gormLogger) } -func NewEngine() (*gorm.DB, error) { +func NewEngine() error { db, err := SetEngine() if err != nil { - return nil, err + return err } if err = migrations.Migrate(db); err != nil { - return nil, fmt.Errorf("migrate: %v", err) + return fmt.Errorf("migrate: %v", err) } if err = x.StoreEngine("InnoDB").Sync2(legacyTables...); err != nil { - return nil, errors.Wrap(err, "sync tables") + return errors.Wrap(err, "sync tables") } - return db, nil + return nil } type Statistic struct { diff --git a/internal/route/install.go b/internal/route/install.go index 9bda5e590..a6daea40d 100644 --- a/internal/route/install.go +++ b/internal/route/install.go @@ -71,11 +71,10 @@ func GlobalInit(customConf string) error { if conf.Security.InstallLock { highlight.NewContext() markup.NewSanitizer() - db, err := database.NewEngine() + err := database.NewEngine() if err != nil { log.Fatal("Failed to initialize ORM engine: %v", err) } - database.SetHandle(db) database.HasEngine = true database.LoadRepoConfig()