Skip to content

Commit

Permalink
Migration fixes 5318 1.6 backport (go-gitea#5355)
Browse files Browse the repository at this point in the history
* Remove field from migration to support upgrades from older version

That will ensure the field does not get queried in the Select if it does
not exist yet:

```
[I] [SQL] SELECT "id", "repo_id", "index", "poster_id", "name", "content", "milestone_id", "priority", "assignee_id", "is_closed", "is_pull", "num_comments", "ref", "deadline_unix", "created_unix", "updated_unix
[...itea/routers/init.go:60 GlobalInit()] [E] Failed to initialize ORM engine: migrate: do migrate: pq: column "ref" does not exist
```

see go-gitea#5318

* Skip remove stale watcher migration if not required

Otherwise the migration will fail if executed from a older database
version without multiple IssueWatch feature.

```
2018/11/11 23:51:14 [I] [SQL] SELECT DISTINCT "issue_watch"."user_id", "issue"."repo_id" FROM "issue_watch" INNER JOIN issue ON issue_watch.issue_id = issue.id WHERE (issue_watch.is_watching = $1) LIMIT 50 []int
[...itea/routers/init.go:60 GlobalInit()] [E] Failed to initialize ORM engine: migrate: do migrate: pq: relation "issue_watch" does not exist
```

see go-gitea#5318
  • Loading branch information
nougad authored and lafriks committed Nov 18, 2018
1 parent 8670dec commit ffc0c7f
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 1 deletion.
1 change: 0 additions & 1 deletion models/migrations/v64.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ func addMultipleAssignees(x *xorm.Engine) error {
IsClosed bool `xorm:"INDEX"`
IsPull bool `xorm:"INDEX"` // Indicates whether is a pull request or not.
NumComments int
Ref string

DeadlineUnix util.TimeStamp `xorm:"INDEX"`
CreatedUnix util.TimeStamp `xorm:"INDEX created"`
Expand Down
9 changes: 9 additions & 0 deletions models/migrations/v67.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
package migrations

import (
"fmt"

"code.gitea.io/gitea/modules/setting"

"github.com/go-xorm/xorm"
Expand Down Expand Up @@ -70,6 +72,13 @@ func removeStaleWatches(x *xorm.Engine) error {
return err
}

var issueWatch IssueWatch
if exist, err := sess.IsTableExist(&issueWatch); err != nil {
return fmt.Errorf("IsExist IssueWatch: %v", err)
} else if !exist {
return nil
}

repoCache := make(map[int64]*Repository)
err := x.BufferSize(setting.IterateBufferSize).Iterate(new(Watch),
func(idx int, bean interface{}) error {
Expand Down

0 comments on commit ffc0c7f

Please sign in to comment.