From cdc843f06b90acf71211a684ba32cd92c765230d Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 30 Apr 2014 10:23:43 +0800 Subject: [PATCH] add fix command for upgrade --- fix.go | 44 ++++++++++++++++++++++++++++++++++++++++++++ gogs.go | 1 + models/fix.go | 6 ++++++ 3 files changed, 51 insertions(+) create mode 100644 fix.go create mode 100644 models/fix.go diff --git a/fix.go b/fix.go new file mode 100644 index 0000000000..afc1ea6ebf --- /dev/null +++ b/fix.go @@ -0,0 +1,44 @@ +// Copyright 2014 The Gogs 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 main + +import ( + "fmt" + "os" + + "github.com/codegangsta/cli" + "github.com/gogits/gogs/models" + "github.com/gogits/gogs/modules/base" +) + +var CmdFix = cli.Command{ + Name: "fix", + Usage: "This command for upgrade from old version", + Description: ` +gogs fix provide upgrade from old version`, + Action: runFix, + Flags: []cli.Flag{}, +} + +func runFix(k *cli.Context) { + execDir, _ := base.ExecDir() + newLogger(execDir) + + base.NewConfigContext() + models.LoadModelsConfig() + + if models.UseSQLite3 { + os.Chdir(execDir) + } + + models.SetEngine() + + err := models.Fix() + if err != nil { + fmt.Println(err) + } else { + fmt.Println("Fix successfully!") + } +} diff --git a/gogs.go b/gogs.go index b06c80064c..48cc194cb0 100644 --- a/gogs.go +++ b/gogs.go @@ -35,6 +35,7 @@ func main() { CmdWeb, CmdServ, CmdUpdate, + CmdFix, } app.Flags = append(app.Flags, []cli.Flag{}...) app.Run(os.Args) diff --git a/models/fix.go b/models/fix.go new file mode 100644 index 0000000000..9fc141bd26 --- /dev/null +++ b/models/fix.go @@ -0,0 +1,6 @@ +package models + +func Fix() error { + _, err := orm.Exec("alter table repository drop column num_releases") + return err +}