From f5992a78add076532543e8d958721196e77277dd Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Tue, 7 Mar 2023 06:59:02 +0000 Subject: [PATCH 01/22] fix incorrect project type --- routers/web/org/projects.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/routers/web/org/projects.go b/routers/web/org/projects.go index 046100c72e2f5..67936c2be0103 100644 --- a/routers/web/org/projects.go +++ b/routers/web/org/projects.go @@ -142,14 +142,21 @@ func NewProjectPost(ctx *context.Context) { return } - if err := project_model.NewProject(&project_model.Project{ + newProject := project_model.Project{ OwnerID: ctx.ContextUser.ID, Title: form.Title, Description: form.Content, CreatorID: ctx.Doer.ID, BoardType: form.BoardType, - Type: project_model.TypeOrganization, - }); err != nil { + } + + if ctx.ContextUser.IsOrganization() { + newProject.Type = project_model.TypeOrganization + } else { + newProject.Type = project_model.TypeIndividual + } + + if err := project_model.NewProject(&newProject); err != nil { ctx.ServerError("NewProject", err) return } From de62b051a57c520e75938a59d96fb40ca337ae1b Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Wed, 8 Mar 2023 06:41:42 +0000 Subject: [PATCH 02/22] add db migration --- models/migrations/migrations.go | 2 ++ models/migrations/v1_20/v245.go | 15 +++++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 models/migrations/v1_20/v245.go diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index 585457e474f05..dfe8600597247 100644 --- a/models/migrations/migrations.go +++ b/models/migrations/migrations.go @@ -467,6 +467,8 @@ var migrations = []Migration{ // v244 -> v245 NewMigration("Add NeedApproval to actions tables", v1_20.AddNeedApprovalToActionRun), + // v245 -> v246 + NewMigration("Fix incorrect project type", v1_20.FixIncorrectProjectType), } // GetCurrentDBVersion returns the current db version diff --git a/models/migrations/v1_20/v245.go b/models/migrations/v1_20/v245.go new file mode 100644 index 0000000000000..c8b738c8a1bc2 --- /dev/null +++ b/models/migrations/v1_20/v245.go @@ -0,0 +1,15 @@ +// Copyright 2023 The Gitea Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package v1_20 //nolint + +import ( + "xorm.io/xorm" +) + +// FixIncorrectProjectType: set individual project's type from 3(TypeOrganization) to 1(TypeIndividual) +func FixIncorrectProjectType(x *xorm.Engine) error { + _, err := x.Exec("UPDATE project SET type = ? FROM user WHERE user.id = project.owner_id AND project.type = ? AND user.type = ?", 1, 3, 0) + + return err +} From 293a68ecd9dbea762c3fa5551ebfe35c697d84b1 Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Wed, 8 Mar 2023 06:45:25 +0000 Subject: [PATCH 03/22] fix project list page --- routers/web/org/projects.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/routers/web/org/projects.go b/routers/web/org/projects.go index 67936c2be0103..251443a625fd4 100644 --- a/routers/web/org/projects.go +++ b/routers/web/org/projects.go @@ -51,13 +51,18 @@ func Projects(ctx *context.Context) { page = 1 } - projects, total, err := project_model.FindProjects(ctx, project_model.SearchOptions{ + pso := project_model.SearchOptions{ OwnerID: ctx.ContextUser.ID, Page: page, IsClosed: util.OptionalBoolOf(isShowClosed), SortType: sortType, - Type: project_model.TypeOrganization, - }) + } + if ctx.ContextUser.IsOrganization() { + pso.Type = project_model.TypeOrganization + } else { + pso.Type = project_model.TypeIndividual + } + projects, total, err := project_model.FindProjects(ctx, pso) if err != nil { ctx.ServerError("FindProjects", err) return From 5bcc68c27ee17cbbc44fe1b63e25a0a082c86a08 Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Thu, 9 Mar 2023 02:23:39 +0000 Subject: [PATCH 04/22] (error preview) --- models/migrations/v1_20/v245.go | 39 ++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/models/migrations/v1_20/v245.go b/models/migrations/v1_20/v245.go index c8b738c8a1bc2..a66e39bcdd3c9 100644 --- a/models/migrations/v1_20/v245.go +++ b/models/migrations/v1_20/v245.go @@ -4,12 +4,49 @@ package v1_20 //nolint import ( + "fmt" + + "code.gitea.io/gitea/modules/log" "xorm.io/xorm" ) // FixIncorrectProjectType: set individual project's type from 3(TypeOrganization) to 1(TypeIndividual) func FixIncorrectProjectType(x *xorm.Engine) error { - _, err := x.Exec("UPDATE project SET type = ? FROM user WHERE user.id = project.owner_id AND project.type = ? AND user.type = ?", 1, 3, 0) + type User struct { + ID int64 `xorm:"pk autoincr"` + Type int + } + + const ( + UserTypeIndividual int = 0 + + TypeIndividual uint8 = 1 + TypeOrganization uint8 = 3 + ) + + type Project struct { + OwnerID int64 `xorm:"INDEX"` + Type uint8 + Owner *User `xorm:"extends"` + } + + ps := make([]Project, 0, 10) + count, err := x.Table("project"). + //err := x.Table("project"). + Join("INNER", "user", "user.id = project.owner_id"). + Where("project.type = ? AND user.type = ?", TypeOrganization, UserTypeIndividual). + //Find(&ps) + Update(&Project{ + Type: TypeIndividual, + }) + + if err == nil { + log.Debug("Updated %d projects with owner IS UserTypeIndividual", count) + for _, p := range ps { + fmt.Println(p) + fmt.Println(p.Owner) + } + } return err } From b1a471a52bca312856c316e2c7f47388f2382884 Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Thu, 9 Mar 2023 04:57:02 +0000 Subject: [PATCH 05/22] fix --- models/project/project_test.go | 2 +- routers/web/org/projects.go | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/models/project/project_test.go b/models/project/project_test.go index 6caa244f540a3..71ceda7aa5ad2 100644 --- a/models/project/project_test.go +++ b/models/project/project_test.go @@ -20,7 +20,7 @@ func TestIsProjectTypeValid(t *testing.T) { typ Type valid bool }{ - {TypeIndividual, false}, + {TypeIndividual, true}, {TypeRepository, true}, {TypeOrganization, true}, {UnknownType, false}, diff --git a/routers/web/org/projects.go b/routers/web/org/projects.go index 251443a625fd4..bac9ec633fa9a 100644 --- a/routers/web/org/projects.go +++ b/routers/web/org/projects.go @@ -51,18 +51,19 @@ func Projects(ctx *context.Context) { page = 1 } - pso := project_model.SearchOptions{ + var projectType project_model.Type + if ctx.ContextUser.IsOrganization() { + projectType = project_model.TypeOrganization + } else { + projectType = project_model.TypeIndividual + } + projects, total, err := project_model.FindProjects(ctx, project_model.SearchOptions{ OwnerID: ctx.ContextUser.ID, Page: page, IsClosed: util.OptionalBoolOf(isShowClosed), SortType: sortType, - } - if ctx.ContextUser.IsOrganization() { - pso.Type = project_model.TypeOrganization - } else { - pso.Type = project_model.TypeIndividual - } - projects, total, err := project_model.FindProjects(ctx, pso) + Type: projectType, + }) if err != nil { ctx.ServerError("FindProjects", err) return @@ -71,7 +72,7 @@ func Projects(ctx *context.Context) { opTotal, err := project_model.CountProjects(ctx, project_model.SearchOptions{ OwnerID: ctx.ContextUser.ID, IsClosed: util.OptionalBoolOf(!isShowClosed), - Type: project_model.TypeOrganization, + Type: projectType, }) if err != nil { ctx.ServerError("CountProjects", err) From 581bc03962088d3d2aa4716c2e6b2074c2c19221 Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Fri, 10 Mar 2023 00:46:40 +0000 Subject: [PATCH 06/22] fix lint --- models/migrations/v1_20/v245.go | 1 + 1 file changed, 1 insertion(+) diff --git a/models/migrations/v1_20/v245.go b/models/migrations/v1_20/v245.go index a66e39bcdd3c9..c8fc5b5e42c49 100644 --- a/models/migrations/v1_20/v245.go +++ b/models/migrations/v1_20/v245.go @@ -7,6 +7,7 @@ import ( "fmt" "code.gitea.io/gitea/modules/log" + "xorm.io/xorm" ) From 0241dcb08643fea4ffe839387249ad2fcf76a2dc Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Fri, 10 Mar 2023 09:47:13 +0900 Subject: [PATCH 07/22] Update models/migrations/v1_20/v245.go Co-authored-by: delvh --- models/migrations/v1_20/v245.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/migrations/v1_20/v245.go b/models/migrations/v1_20/v245.go index c8fc5b5e42c49..acdf011279b63 100644 --- a/models/migrations/v1_20/v245.go +++ b/models/migrations/v1_20/v245.go @@ -42,7 +42,7 @@ func FixIncorrectProjectType(x *xorm.Engine) error { }) if err == nil { - log.Debug("Updated %d projects with owner IS UserTypeIndividual", count) + log.Debug("Updated %d projects to belong to a user instead of an organization", count) for _, p := range ps { fmt.Println(p) fmt.Println(p.Owner) From ed4214bdf19a1e1e5587de7ad86ffa0196bf79cd Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Fri, 10 Mar 2023 01:03:02 +0000 Subject: [PATCH 08/22] add session, fixme --- models/migrations/v1_20/v245.go | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/models/migrations/v1_20/v245.go b/models/migrations/v1_20/v245.go index acdf011279b63..da6e3f0d3822d 100644 --- a/models/migrations/v1_20/v245.go +++ b/models/migrations/v1_20/v245.go @@ -4,8 +4,6 @@ package v1_20 //nolint import ( - "fmt" - "code.gitea.io/gitea/modules/log" "xorm.io/xorm" @@ -31,23 +29,27 @@ func FixIncorrectProjectType(x *xorm.Engine) error { Owner *User `xorm:"extends"` } - ps := make([]Project, 0, 10) - count, err := x.Table("project"). - //err := x.Table("project"). + sess := x.NewSession() + defer sess.Close() + + if err := sess.Begin(); err != nil { + return err + } + + count, err := sess.Table("project"). Join("INNER", "user", "user.id = project.owner_id"). Where("project.type = ? AND user.type = ?", TypeOrganization, UserTypeIndividual). - //Find(&ps) + // FIXME: + // Error: migrate: migration[245]: Fix incorrect project type failed: no such column: user.type Update(&Project{ Type: TypeIndividual, }) if err == nil { log.Debug("Updated %d projects to belong to a user instead of an organization", count) - for _, p := range ps { - fmt.Println(p) - fmt.Println(p.Owner) - } + } else { + return err } - return err + return sess.Commit() } From 920c565f2656abfd25adea2db9de6e3a5b751e10 Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Tue, 14 Mar 2023 04:09:28 +0000 Subject: [PATCH 09/22] update --- models/migrations/migrations.go | 2 +- models/migrations/v1_20/{v245.go => v246.go} | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) rename models/migrations/v1_20/{v245.go => v246.go} (79%) diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index dfe8600597247..0f80071920ed6 100644 --- a/models/migrations/migrations.go +++ b/models/migrations/migrations.go @@ -467,7 +467,7 @@ var migrations = []Migration{ // v244 -> v245 NewMigration("Add NeedApproval to actions tables", v1_20.AddNeedApprovalToActionRun), - // v245 -> v246 + // v246 -> v247 NewMigration("Fix incorrect project type", v1_20.FixIncorrectProjectType), } diff --git a/models/migrations/v1_20/v245.go b/models/migrations/v1_20/v246.go similarity index 79% rename from models/migrations/v1_20/v245.go rename to models/migrations/v1_20/v246.go index da6e3f0d3822d..edc310057a419 100644 --- a/models/migrations/v1_20/v245.go +++ b/models/migrations/v1_20/v246.go @@ -37,10 +37,7 @@ func FixIncorrectProjectType(x *xorm.Engine) error { } count, err := sess.Table("project"). - Join("INNER", "user", "user.id = project.owner_id"). - Where("project.type = ? AND user.type = ?", TypeOrganization, UserTypeIndividual). - // FIXME: - // Error: migrate: migration[245]: Fix incorrect project type failed: no such column: user.type + Where("type = ? AND owner_id = (SELECT id FROM user WHERE type = ?)", TypeOrganization, UserTypeIndividual). Update(&Project{ Type: TypeIndividual, }) From 4b26d6c5aa5bf7c704940cd79396b1b75da0e256 Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Tue, 14 Mar 2023 13:29:50 +0900 Subject: [PATCH 10/22] Update models/migrations/v1_20/v246.go Co-authored-by: Lunny Xiao --- models/migrations/v1_20/v246.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/migrations/v1_20/v246.go b/models/migrations/v1_20/v246.go index edc310057a419..7eb950c9b3ea5 100644 --- a/models/migrations/v1_20/v246.go +++ b/models/migrations/v1_20/v246.go @@ -37,7 +37,7 @@ func FixIncorrectProjectType(x *xorm.Engine) error { } count, err := sess.Table("project"). - Where("type = ? AND owner_id = (SELECT id FROM user WHERE type = ?)", TypeOrganization, UserTypeIndividual). + Where("type = ? AND owner_id IN (SELECT id FROM user WHERE type = ?)", TypeOrganization, UserTypeIndividual). Update(&Project{ Type: TypeIndividual, }) From 8f5eb33f166f2f5c264fe9128e62dcc8fe125846 Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Tue, 14 Mar 2023 13:30:01 +0900 Subject: [PATCH 11/22] Update models/migrations/v1_20/v246.go Co-authored-by: Lunny Xiao --- models/migrations/v1_20/v246.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/models/migrations/v1_20/v246.go b/models/migrations/v1_20/v246.go index 7eb950c9b3ea5..daf83d6f354a5 100644 --- a/models/migrations/v1_20/v246.go +++ b/models/migrations/v1_20/v246.go @@ -42,11 +42,10 @@ func FixIncorrectProjectType(x *xorm.Engine) error { Type: TypeIndividual, }) - if err == nil { - log.Debug("Updated %d projects to belong to a user instead of an organization", count) - } else { - return err + if err != nil { + return err } + log.Debug("Updated %d projects to belong to a user instead of an organization", count) return sess.Commit() } From 075da0ee124be4bab1f6380bd5a65c433025d045 Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Tue, 14 Mar 2023 04:53:49 +0000 Subject: [PATCH 12/22] fix lint --- models/migrations/migrations.go | 2 +- models/migrations/v1_20/v246.go | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index b8185ab019c0f..a6b99a0efde94 100644 --- a/models/migrations/migrations.go +++ b/models/migrations/migrations.go @@ -469,7 +469,7 @@ var migrations = []Migration{ NewMigration("Add NeedApproval to actions tables", v1_20.AddNeedApprovalToActionRun), // v245 -> v246 NewMigration("Rename Webhook org_id to owner_id", v1_20.RenameWebhookOrgToOwner), - // v246 -> v247 + // v246 -> v247 NewMigration("Fix incorrect project type", v1_20.FixIncorrectProjectType), } diff --git a/models/migrations/v1_20/v246.go b/models/migrations/v1_20/v246.go index daf83d6f354a5..8395e7bca8ee9 100644 --- a/models/migrations/v1_20/v246.go +++ b/models/migrations/v1_20/v246.go @@ -41,9 +41,8 @@ func FixIncorrectProjectType(x *xorm.Engine) error { Update(&Project{ Type: TypeIndividual, }) - if err != nil { - return err + return err } log.Debug("Updated %d projects to belong to a user instead of an organization", count) From 3bcc288e15425b0881c356d902e2e03337dfa9b6 Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Tue, 14 Mar 2023 07:21:31 +0000 Subject: [PATCH 13/22] add TypeRepository as valid project type --- models/project/project.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/project/project.go b/models/project/project.go index f3ed723030cdb..679d695881c84 100644 --- a/models/project/project.go +++ b/models/project/project.go @@ -172,7 +172,7 @@ func GetCardConfig() []CardConfig { // IsTypeValid checks if a project type is valid func IsTypeValid(p Type) bool { switch p { - case TypeRepository, TypeOrganization: + case TypeIndividual, TypeRepository, TypeOrganization: return true default: return false From 72e00b0fab488aa0b03d0661f1c1510b3dfde7d7 Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Tue, 14 Mar 2023 08:55:04 +0000 Subject: [PATCH 14/22] test: use = instead of IN --- models/migrations/v1_20/v246.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/migrations/v1_20/v246.go b/models/migrations/v1_20/v246.go index 8395e7bca8ee9..a6dd4a6cf88d2 100644 --- a/models/migrations/v1_20/v246.go +++ b/models/migrations/v1_20/v246.go @@ -37,7 +37,7 @@ func FixIncorrectProjectType(x *xorm.Engine) error { } count, err := sess.Table("project"). - Where("type = ? AND owner_id IN (SELECT id FROM user WHERE type = ?)", TypeOrganization, UserTypeIndividual). + Where("type = ? AND owner_id = (SELECT id FROM user WHERE type = ?)", TypeOrganization, UserTypeIndividual). Update(&Project{ Type: TypeIndividual, }) From 41671bbeb49cda3cb95996025171b8ae8ebd3d53 Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Tue, 14 Mar 2023 20:35:25 +0900 Subject: [PATCH 15/22] Revert "test: use = instead of IN" This reverts commit 72e00b0fab488aa0b03d0661f1c1510b3dfde7d7. --- models/migrations/v1_20/v246.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/migrations/v1_20/v246.go b/models/migrations/v1_20/v246.go index a6dd4a6cf88d2..8395e7bca8ee9 100644 --- a/models/migrations/v1_20/v246.go +++ b/models/migrations/v1_20/v246.go @@ -37,7 +37,7 @@ func FixIncorrectProjectType(x *xorm.Engine) error { } count, err := sess.Table("project"). - Where("type = ? AND owner_id = (SELECT id FROM user WHERE type = ?)", TypeOrganization, UserTypeIndividual). + Where("type = ? AND owner_id IN (SELECT id FROM user WHERE type = ?)", TypeOrganization, UserTypeIndividual). Update(&Project{ Type: TypeIndividual, }) From 3d8662599d2c21f44611039c0c7b144620d7f6c2 Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Wed, 15 Mar 2023 00:37:56 +0000 Subject: [PATCH 16/22] update --- models/migrations/v1_20/v246.go | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/models/migrations/v1_20/v246.go b/models/migrations/v1_20/v246.go index 8395e7bca8ee9..331b0f499c213 100644 --- a/models/migrations/v1_20/v246.go +++ b/models/migrations/v1_20/v246.go @@ -4,8 +4,10 @@ package v1_20 //nolint import ( + "code.gitea.io/gitea/modules/container" "code.gitea.io/gitea/modules/log" + "xorm.io/builder" "xorm.io/xorm" ) @@ -24,6 +26,7 @@ func FixIncorrectProjectType(x *xorm.Engine) error { ) type Project struct { + ID int64 `xorm:"pk autoincr"` OwnerID int64 `xorm:"INDEX"` Type uint8 Owner *User `xorm:"extends"` @@ -36,8 +39,30 @@ func FixIncorrectProjectType(x *xorm.Engine) error { return err } + var ps []Project + err := sess.Table("project"). + Join("INNER", "user", "user.id = project.owner_id"). + Where("project.type = ? AND user.type = ?", TypeOrganization, UserTypeIndividual). + Find(&ps) + if err != nil { + return err + } + + pids := make(container.Set[int64], len(ps)) + for _, p := range ps { + if p.ID == 0 { + continue + } + pids.Add(p.ID) + } + + sql, args, err := builder.ToSQL(builder.Eq{"id": pids.Values()}) + if err != nil { + return err + } + count, err := sess.Table("project"). - Where("type = ? AND owner_id IN (SELECT id FROM user WHERE type = ?)", TypeOrganization, UserTypeIndividual). + Where(sql, args...). Update(&Project{ Type: TypeIndividual, }) From daf20f2f92267b9bc8d8ba55f504054f7d98ab39 Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Wed, 15 Mar 2023 02:14:00 +0000 Subject: [PATCH 17/22] Revert "update" This reverts commit 3d8662599d2c21f44611039c0c7b144620d7f6c2. --- models/migrations/v1_20/v246.go | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/models/migrations/v1_20/v246.go b/models/migrations/v1_20/v246.go index 331b0f499c213..8395e7bca8ee9 100644 --- a/models/migrations/v1_20/v246.go +++ b/models/migrations/v1_20/v246.go @@ -4,10 +4,8 @@ package v1_20 //nolint import ( - "code.gitea.io/gitea/modules/container" "code.gitea.io/gitea/modules/log" - "xorm.io/builder" "xorm.io/xorm" ) @@ -26,7 +24,6 @@ func FixIncorrectProjectType(x *xorm.Engine) error { ) type Project struct { - ID int64 `xorm:"pk autoincr"` OwnerID int64 `xorm:"INDEX"` Type uint8 Owner *User `xorm:"extends"` @@ -39,30 +36,8 @@ func FixIncorrectProjectType(x *xorm.Engine) error { return err } - var ps []Project - err := sess.Table("project"). - Join("INNER", "user", "user.id = project.owner_id"). - Where("project.type = ? AND user.type = ?", TypeOrganization, UserTypeIndividual). - Find(&ps) - if err != nil { - return err - } - - pids := make(container.Set[int64], len(ps)) - for _, p := range ps { - if p.ID == 0 { - continue - } - pids.Add(p.ID) - } - - sql, args, err := builder.ToSQL(builder.Eq{"id": pids.Values()}) - if err != nil { - return err - } - count, err := sess.Table("project"). - Where(sql, args...). + Where("type = ? AND owner_id IN (SELECT id FROM user WHERE type = ?)", TypeOrganization, UserTypeIndividual). Update(&Project{ Type: TypeIndividual, }) From d95d35b08b5f8f722a19e6b37fb33229d228f050 Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Wed, 15 Mar 2023 23:58:25 +0000 Subject: [PATCH 18/22] change 246 to 247 --- models/migrations/migrations.go | 2 +- models/migrations/v1_20/{v246.go => v247.go} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename models/migrations/v1_20/{v246.go => v247.go} (100%) diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index a6b99a0efde94..8c0a6cfcb7fef 100644 --- a/models/migrations/migrations.go +++ b/models/migrations/migrations.go @@ -469,7 +469,7 @@ var migrations = []Migration{ NewMigration("Add NeedApproval to actions tables", v1_20.AddNeedApprovalToActionRun), // v245 -> v246 NewMigration("Rename Webhook org_id to owner_id", v1_20.RenameWebhookOrgToOwner), - // v246 -> v247 + // v247 -> v248 NewMigration("Fix incorrect project type", v1_20.FixIncorrectProjectType), } diff --git a/models/migrations/v1_20/v246.go b/models/migrations/v1_20/v247.go similarity index 100% rename from models/migrations/v1_20/v246.go rename to models/migrations/v1_20/v247.go From cffe767a2f4f08a716cdd62abeaa21f6785b40d5 Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Thu, 16 Mar 2023 00:00:14 +0000 Subject: [PATCH 19/22] fix lint --- models/migrations/migrations.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index d9147731de037..5401ae2fa6352 100644 --- a/models/migrations/migrations.go +++ b/models/migrations/migrations.go @@ -469,7 +469,7 @@ var migrations = []Migration{ NewMigration("Add NeedApproval to actions tables", v1_20.AddNeedApprovalToActionRun), // v245 -> v246 NewMigration("Rename Webhook org_id to owner_id", v1_20.RenameWebhookOrgToOwner), - // v246 -> v247 + // v246 -> v247 NewMigration("Add missed column owner_id for project table", v1_20.AddNewColumnForProject), // v247 -> v248 NewMigration("Fix incorrect project type", v1_20.FixIncorrectProjectType), From f1e0736d956e75abd10c5322e43c700f56bc90de Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Thu, 16 Mar 2023 01:44:23 +0000 Subject: [PATCH 20/22] update --- models/migrations/v1_20/v247.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/models/migrations/v1_20/v247.go b/models/migrations/v1_20/v247.go index 8395e7bca8ee9..ec345006042dd 100644 --- a/models/migrations/v1_20/v247.go +++ b/models/migrations/v1_20/v247.go @@ -6,6 +6,7 @@ package v1_20 //nolint import ( "code.gitea.io/gitea/modules/log" + "xorm.io/builder" "xorm.io/xorm" ) @@ -36,8 +37,18 @@ func FixIncorrectProjectType(x *xorm.Engine) error { return err } + sql, args, err := builder.ToSQL( + builder.And( + builder.Eq{"type": TypeOrganization}, + builder.And(builder.Eq{"owner_id": builder.Select("id").From("user").Where(builder.Eq{"type": UserTypeIndividual})}), + ), + ) + if err != nil { + return err + } + count, err := sess.Table("project"). - Where("type = ? AND owner_id IN (SELECT id FROM user WHERE type = ?)", TypeOrganization, UserTypeIndividual). + Where(sql, args...). Update(&Project{ Type: TypeIndividual, }) From 2b90ac85f589fab894a9398bddf9fbd2d7014b8a Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Thu, 16 Mar 2023 06:35:41 +0000 Subject: [PATCH 21/22] Revert "update" This reverts commit f1e0736d956e75abd10c5322e43c700f56bc90de. --- models/migrations/v1_20/v247.go | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/models/migrations/v1_20/v247.go b/models/migrations/v1_20/v247.go index ec345006042dd..8395e7bca8ee9 100644 --- a/models/migrations/v1_20/v247.go +++ b/models/migrations/v1_20/v247.go @@ -6,7 +6,6 @@ package v1_20 //nolint import ( "code.gitea.io/gitea/modules/log" - "xorm.io/builder" "xorm.io/xorm" ) @@ -37,18 +36,8 @@ func FixIncorrectProjectType(x *xorm.Engine) error { return err } - sql, args, err := builder.ToSQL( - builder.And( - builder.Eq{"type": TypeOrganization}, - builder.And(builder.Eq{"owner_id": builder.Select("id").From("user").Where(builder.Eq{"type": UserTypeIndividual})}), - ), - ) - if err != nil { - return err - } - count, err := sess.Table("project"). - Where(sql, args...). + Where("type = ? AND owner_id IN (SELECT id FROM user WHERE type = ?)", TypeOrganization, UserTypeIndividual). Update(&Project{ Type: TypeIndividual, }) From 64e439528cc17b9997de5c3939302c9fcf9318f4 Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Thu, 16 Mar 2023 06:36:08 +0000 Subject: [PATCH 22/22] update --- models/migrations/v1_20/v247.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/migrations/v1_20/v247.go b/models/migrations/v1_20/v247.go index 8395e7bca8ee9..59fc5c46b5dbc 100644 --- a/models/migrations/v1_20/v247.go +++ b/models/migrations/v1_20/v247.go @@ -37,7 +37,7 @@ func FixIncorrectProjectType(x *xorm.Engine) error { } count, err := sess.Table("project"). - Where("type = ? AND owner_id IN (SELECT id FROM user WHERE type = ?)", TypeOrganization, UserTypeIndividual). + Where("type = ? AND owner_id IN (SELECT id FROM `user` WHERE type = ?)", TypeOrganization, UserTypeIndividual). Update(&Project{ Type: TypeIndividual, })