]> source.dussan.org Git - gitea.git/commitdiff
Add command for migrating database (#4954)
authorRobert Ștefan <32664920+rstefan1@users.noreply.github.com>
Wed, 31 Oct 2018 03:14:42 +0000 (05:14 +0200)
committertechknowlogick <hello@techknowlogick.com>
Wed, 31 Oct 2018 03:14:42 +0000 (23:14 -0400)
cmd/migrate.go [new file with mode: 0644]
main.go

diff --git a/cmd/migrate.go b/cmd/migrate.go
new file mode 100644 (file)
index 0000000..d5dd306
--- /dev/null
@@ -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
+}
diff --git a/main.go b/main.go
index e73f1d60a922c72b6b4a65c11e6f4ea6d1f0a814..a331de4733d38e767413e1f61171f995a6dd592f 100644 (file)
--- a/main.go
+++ b/main.go
@@ -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