diff options
author | Robert Ștefan <32664920+rstefan1@users.noreply.github.com> | 2018-10-31 05:14:42 +0200 |
---|---|---|
committer | techknowlogick <hello@techknowlogick.com> | 2018-10-30 23:14:42 -0400 |
commit | 7edb930240fdd35dc121d859f1cec23ac7c6300a (patch) | |
tree | 326c5736380730d1af3841124294484b063e1921 | |
parent | 6eff62ae0940872bc45cd191b5689f7769451436 (diff) | |
download | gitea-7edb930240fdd35dc121d859f1cec23ac7c6300a.tar.gz gitea-7edb930240fdd35dc121d859f1cec23ac7c6300a.zip |
Add command for migrating database (#4954)
-rw-r--r-- | cmd/migrate.go | 52 | ||||
-rw-r--r-- | main.go | 1 |
2 files changed, 53 insertions, 0 deletions
diff --git a/cmd/migrate.go b/cmd/migrate.go new file mode 100644 index 0000000000..d5dd3068cf --- /dev/null +++ b/cmd/migrate.go @@ -0,0 +1,52 @@ +// Copyright 2018 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package cmd + +import ( + "code.gitea.io/gitea/models" + "code.gitea.io/gitea/models/migrations" + "code.gitea.io/gitea/modules/log" + "code.gitea.io/gitea/modules/setting" + + "github.com/urfave/cli" +) + +// CmdMigrate represents the available migrate sub-command. +var CmdMigrate = cli.Command{ + Name: "migrate", + Usage: "Migrate the database", + Description: "This is a command for migrating the database, so that you can run gitea admin create-user before starting the server.", + Action: runMigrate, + Flags: []cli.Flag{ + cli.StringFlag{ + Name: "config, c", + Value: "custom/conf/app.ini", + Usage: "Custom configuration file path", + }, + }, +} + +func runMigrate(ctx *cli.Context) error { + if ctx.IsSet("config") { + setting.CustomConf = ctx.String("config") + } + + if err := initDB(); err != nil { + return err + } + + log.Trace("AppPath: %s", setting.AppPath) + log.Trace("AppWorkPath: %s", setting.AppWorkPath) + log.Trace("Custom path: %s", setting.CustomPath) + log.Trace("Log path: %s", setting.LogRootPath) + models.LoadConfigs() + + if err := models.NewEngine(migrations.Migrate); err != nil { + log.Fatal(4, "Failed to initialize ORM engine: %v", err) + return err + } + + return nil +} @@ -47,6 +47,7 @@ arguments - which can alternatively be run by running the subcommand web.` cmd.CmdCert, cmd.CmdAdmin, cmd.CmdGenerate, + cmd.CmdMigrate, } app.Flags = append(app.Flags, []cli.Flag{}...) app.Action = cmd.CmdWeb.Action |