diff options
author | ᴜɴᴋɴᴡᴏɴ <u@gogs.io> | 2020-05-04 16:25:57 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-04 16:25:57 +0800 |
commit | 9bb218734c53c98a13264c2f4f479e3633ccfe18 (patch) | |
tree | f32557409337e18d9f7959dcb2089f0bf698513b /internal/db/db.go | |
parent | 82ffca3fc9988345016c8033f7f65c5b028dfe10 (diff) |
db: use GORM to backup and restore non-legacy tables (#6142)
Diffstat (limited to 'internal/db/db.go')
-rw-r--r-- | internal/db/db.go | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/internal/db/db.go b/internal/db/db.go index ec2dd6ec..a6e53683 100644 --- a/internal/db/db.go +++ b/internal/db/db.go @@ -122,15 +122,16 @@ func getLogWriter() (io.Writer, error) { return w, nil } +// NOTE: Lines are sorted in alphabetical order, each letter in its own line. var tables = []interface{}{ new(AccessToken), new(LFSObject), new(LoginSource), } -func Init() error { +func Init() (*gorm.DB, error) { db, err := openDB(conf.Database) if err != nil { - return errors.Wrap(err, "open database") + return nil, errors.Wrap(err, "open database") } db.SingularTable(true) db.DB().SetMaxOpenConns(conf.Database.MaxOpenConns) @@ -139,7 +140,7 @@ func Init() error { w, err := getLogWriter() if err != nil { - return errors.Wrap(err, "get log writer") + return nil, errors.Wrap(err, "get log writer") } db.SetLogger(&dbutil.Writer{Writer: w}) if !conf.IsProdMode() { @@ -168,7 +169,7 @@ func Init() error { name := strings.TrimPrefix(fmt.Sprintf("%T", table), "*db.") err = db.AutoMigrate(table).Error if err != nil { - return errors.Wrapf(err, "auto migrate %q", name) + return nil, errors.Wrapf(err, "auto migrate %q", name) } log.Trace("Auto migrated %q", name) } @@ -179,7 +180,7 @@ func Init() error { sourceFiles, err := loadLoginSourceFiles(filepath.Join(conf.CustomDir(), "conf", "auth.d")) if err != nil { - return errors.Wrap(err, "load login source files") + return nil, errors.Wrap(err, "load login source files") } // Initialize stores, sorted in alphabetical order. @@ -191,5 +192,5 @@ func Init() error { TwoFactors = &twoFactors{DB: db} Users = &users{DB: db} - return db.DB().Ping() + return db, db.DB().Ping() } |