From c41cbe20a5c32fa5cfdad1dc00f7900c1dd198dd Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Fri, 10 Mar 2017 21:47:58 +0800 Subject: [PATCH 1/3] fix upgrade failed after rollback --- models/migrations/v16.go | 6 ++++++ models/migrations/v20.go | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/models/migrations/v16.go b/models/migrations/v16.go index 47292c41e210..12cad46d0983 100644 --- a/models/migrations/v16.go +++ b/models/migrations/v16.go @@ -59,6 +59,12 @@ func addUnitsToTables(x *xorm.Engine) error { } var repoUnit RepoUnit + if exist, err := sess.IsTableExist(&repoUnit); err != nil { + return fmt.Errorf("IsExist RepoUnit: %v", err) + } else if exist { + return nil + } + if err := sess.CreateTable(&repoUnit); err != nil { return fmt.Errorf("CreateTable RepoUnit: %v", err) } diff --git a/models/migrations/v20.go b/models/migrations/v20.go index 45d7e49ca87f..2ae1733ad05f 100644 --- a/models/migrations/v20.go +++ b/models/migrations/v20.go @@ -13,6 +13,7 @@ import ( "path/filepath" "strconv" + "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/setting" "github.com/go-xorm/xorm" @@ -40,7 +41,8 @@ func useNewNameAvatars(x *xorm.Engine) error { for _, name := range names { userID, err := strconv.ParseInt(name, 10, 64) if err != nil { - return err + log.Warnf("ignore avatar %s rename: %v", name, err) + continue } var user User From 24f934e2a55a142a039b6999b078ce6596587a6c Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Fri, 10 Mar 2017 21:51:23 +0800 Subject: [PATCH 2/3] fix upgrade failed after rollback --- models/migrations/v20.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/migrations/v20.go b/models/migrations/v20.go index 2ae1733ad05f..982914a06ec3 100644 --- a/models/migrations/v20.go +++ b/models/migrations/v20.go @@ -41,7 +41,7 @@ func useNewNameAvatars(x *xorm.Engine) error { for _, name := range names { userID, err := strconv.ParseInt(name, 10, 64) if err != nil { - log.Warnf("ignore avatar %s rename: %v", name, err) + log.Warn("ignore avatar %s rename: %v", name, err) continue } From ffab3083a112d963fd976d72068ae6eb36c2b8c6 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Fri, 10 Mar 2017 22:01:22 +0800 Subject: [PATCH 3/3] fix possible upgrade twice fail after rollback --- models/migrations/v19.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/models/migrations/v19.go b/models/migrations/v19.go index 6e0dbedaa3f1..0edeb3e92e46 100644 --- a/models/migrations/v19.go +++ b/models/migrations/v19.go @@ -60,8 +60,14 @@ func generateAndMigrateGitHooks(x *xorm.Engine) (err error) { oldHookPath := filepath.Join(hookDir, hookName) newHookPath := filepath.Join(hookDir, hookName+".d", "gitea") - if err = os.MkdirAll(filepath.Join(hookDir, hookName+".d"), os.ModePerm); err != nil { - return fmt.Errorf("create hooks dir '%s': %v", filepath.Join(hookDir, hookName+".d"), err) + customHooksDir := filepath.Join(hookDir, hookName+".d") + // if it's exist, that means you have upgraded ever + if com.IsExist(customHooksDir) { + continue + } + + if err = os.MkdirAll(customHooksDir, os.ModePerm); err != nil { + return fmt.Errorf("create hooks dir '%s': %v", customHooksDir, err) } // WARNING: Old server-side hooks will be moved to sub directory with the same name