aboutsummaryrefslogtreecommitdiffstats
path: root/models/migrations/v37.go
diff options
context:
space:
mode:
authorDavid Schneiderbauer <daviian@users.noreply.github.com>2017-10-08 13:08:18 +0200
committerLunny Xiao <xiaolunwen@gmail.com>2017-10-08 19:08:18 +0800
commitebac051e7207181ac3d7bbe288536bf2224c9c0e (patch)
tree3622243563c05a11f7656fea8b3d31f726195fb5 /models/migrations/v37.go
parent92123fe82a2dc4c01fdc180baaa7d2bfa2fe971a (diff)
downloadgitea-ebac051e7207181ac3d7bbe288536bf2224c9c0e.tar.gz
gitea-ebac051e7207181ac3d7bbe288536bf2224c9c0e.zip
Rewrite migrations to not depend on future code changes (#2604)
* v38 migration used an outdated version of RepoUnit model (#2602) * change repoUnit model in migration * fix v16 migration repo_unit table * fix lint error * move type definition inside function Signed-off-by: David Schneiderbauer <dschneiderbauer@gmail.com> * fix lint error Signed-off-by: David Schneiderbauer <dschneiderbauer@gmail.com> * Fix time tracking migration * Refactor code * Fix migration from Gogs * v38 migration used an outdated version of RepoUnit model (#2602) * change repoUnit model in migration * fix v16 migration repo_unit table * fix lint error * move type definition inside function Signed-off-by: David Schneiderbauer <dschneiderbauer@gmail.com> * fix lint error Signed-off-by: David Schneiderbauer <dschneiderbauer@gmail.com> * Fix time tracking migration * Refactor code * Fix migration from Gogs * add error check Signed-off-by: David Schneiderbauer <dschneiderbauer@gmail.com> * Additiomal fixes for migrations * Fix timetracking migration * Add back nil check
Diffstat (limited to 'models/migrations/v37.go')
-rw-r--r--models/migrations/v37.go13
1 files changed, 8 insertions, 5 deletions
diff --git a/models/migrations/v37.go b/models/migrations/v37.go
index aac00e84cb..00653a780d 100644
--- a/models/migrations/v37.go
+++ b/models/migrations/v37.go
@@ -7,16 +7,19 @@ package migrations
import (
"html"
- "code.gitea.io/gitea/models"
-
"github.com/go-xorm/xorm"
)
func unescapeUserFullNames(x *xorm.Engine) (err error) {
+ type User struct {
+ ID int64 `xorm:"pk autoincr"`
+ FullName string
+ }
+
const batchSize = 100
for start := 0; ; start += batchSize {
- users := make([]*models.User, 0, batchSize)
- if err := x.Limit(start, batchSize).Find(users); err != nil {
+ users := make([]*User, 0, batchSize)
+ if err := x.Limit(batchSize, start).Find(&users); err != nil {
return err
}
if len(users) == 0 {
@@ -24,7 +27,7 @@ func unescapeUserFullNames(x *xorm.Engine) (err error) {
}
for _, user := range users {
user.FullName = html.UnescapeString(user.FullName)
- if _, err := x.Cols("full_name").Update(user); err != nil {
+ if _, err := x.ID(user.ID).Cols("full_name").Update(user); err != nil {
return err
}
}