summaryrefslogtreecommitdiffstats
path: root/cmd/cmd.go
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2021-12-01 15:50:01 +0800
committerGitHub <noreply@github.com>2021-12-01 15:50:01 +0800
commit042cac5fedeec8af53080b9666fe043072f3a6be (patch)
treeb13d57faa71ba8bc9f8b3d40f5be7e3735ac66a4 /cmd/cmd.go
parenta3517d8668482b58cb80ba10a956fe4e27e1a429 (diff)
downloadgitea-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 'cmd/cmd.go')
-rw-r--r--cmd/cmd.go17
1 files changed, 10 insertions, 7 deletions
diff --git a/cmd/cmd.go b/cmd/cmd.go
index b89dd5d8b8..fd713b9aff 100644
--- a/cmd/cmd.go
+++ b/cmd/cmd.go
@@ -16,6 +16,7 @@ import (
"syscall"
"code.gitea.io/gitea/models/db"
+ "code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/util"
@@ -57,15 +58,17 @@ func confirm() (bool, error) {
}
func initDB(ctx context.Context) error {
- return initDBDisableConsole(ctx, false)
-}
-
-func initDBDisableConsole(ctx context.Context, disableConsole bool) error {
- setting.NewContext()
+ setting.LoadFromExisting()
setting.InitDBConfig()
- setting.NewXORMLogService(disableConsole)
+ setting.NewXORMLogService(false)
+
+ if setting.Database.Type == "" {
+ log.Fatal(`Database settings are missing from the configuration file: %q.
+Ensure you are running in the correct environment or set the correct configuration file with -c.
+If this is the intended configuration file complete the [database] section.`, setting.CustomConf)
+ }
if err := db.InitEngine(ctx); err != nil {
- return fmt.Errorf("models.SetEngine: %v", err)
+ return fmt.Errorf("unable to initialise the database using the configuration in %q. Error: %v", setting.CustomConf, err)
}
return nil
}