diff --git a/fix.go b/fix.go new file mode 100644 index 00000000000..afc1ea6ebf9 --- /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 27d5d6886a6..3901b1e543a 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 00000000000..9fc141bd268 --- /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 +}