diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2021-12-01 15:50:01 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-01 15:50:01 +0800 |
commit | 042cac5fedeec8af53080b9666fe043072f3a6be (patch) | |
tree | b13d57faa71ba8bc9f8b3d40f5be7e3735ac66a4 /models/migrations | |
parent | a3517d8668482b58cb80ba10a956fe4e27e1a429 (diff) | |
download | gitea-042cac5fedeec8af53080b9666fe043072f3a6be.tar.gz gitea-042cac5fedeec8af53080b9666fe043072f3a6be.zip |
Improve install code to avoid low-level mistakes. (#17779)
* Improve install code to avoid low-level mistakes.
If a user tries to do a re-install in a Gitea database, they gets a warning and double check.
When Gitea runs, it never create empty app.ini automatically.
Also some small (related) refactoring:
* Refactor db.InitEngine related logic make it more clean (especially for the install code)
* Move some i18n strings out from setting.go to make the setting.go can be easily maintained.
* Show errors in CLI code if an incorrect app.ini is used.
* APP_DATA_PATH is created when installing, and checked when starting (no empty directory is created any more).
Diffstat (limited to 'models/migrations')
-rw-r--r-- | models/migrations/migrations_test.go | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/models/migrations/migrations_test.go b/models/migrations/migrations_test.go index f46070cf8e..2effcb99eb 100644 --- a/models/migrations/migrations_test.go +++ b/models/migrations/migrations_test.go @@ -5,6 +5,7 @@ package migrations import ( + "context" "database/sql" "fmt" "os" @@ -57,7 +58,7 @@ func TestMain(m *testing.M) { } setting.SetCustomPathAndConf("", "", "") - setting.NewContext() + setting.LoadForTest() git.CheckLFSVersion() setting.InitDBConfig() setting.NewLogServices(true) @@ -85,21 +86,11 @@ func removeAllWithRetry(dir string) error { return err } -// newEngine sets the xorm.Engine -func newEngine() (*xorm.Engine, error) { - x, err := db.NewEngine() - if err != nil { - return x, fmt.Errorf("Failed to connect to database: %v", err) +func newXORMEngine() (*xorm.Engine, error) { + if err := db.InitEngine(context.Background()); err != nil { + return nil, err } - - x.SetMapper(names.GonicMapper{}) - // WARNING: for serv command, MUST remove the output to os.stdout, - // so use log file to instead print to stdout. - x.SetLogger(db.NewXORMLogger(setting.Database.LogSQL)) - x.ShowSQL(setting.Database.LogSQL) - x.SetMaxOpenConns(setting.Database.MaxOpenConns) - x.SetMaxIdleConns(setting.Database.MaxIdleConns) - x.SetConnMaxLifetime(setting.Database.ConnMaxLifetime) + x := unittest.GetXORMEngine() return x, nil } @@ -213,7 +204,7 @@ func prepareTestEnv(t *testing.T, skip int, syncModels ...interface{}) (*xorm.En return nil, deferFn } - x, err := newEngine() + x, err := newXORMEngine() assert.NoError(t, err) if x != nil { oldDefer := deferFn |