8000 fix(api): migrate project_group for signature (#4973) · ovh/cds@091e083 · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Commit 091e083

Browse files
authored
fix(api): migrate project_group for signature (#4973)
Signed-off-by: francois samin <francois.samin@corp.ovh.com>
1 parent d079d39 commit 091e083

File tree

1 file changed

+61
-0
lines changed

1 file changed

+61
-0
lines changed

engine/api/migrate/refactor_group.go

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,63 @@ func refactorGroupMembership(ctx context.Context, db *gorp.DbMap) error {
120120
return nil
121121
}
122122

123+
func refactorLinkGroupProject(ctx context.Context, db *gorp.DbMap) error {
124+
// Third step
125+
// Migrate data from table user_group
126+
tx, err := db.Begin()
127+
if err != nil {
128+
return sdk.WithStack(err)
129+
}
130+
131+
defer tx.Rollback() // nolint
132+
133+
rows, err := tx.Query(`
134+
SELECT id, group_id, project_id, role
135+
FROM project_group
136+
FOR UPDATE SKIP LOCKED
137+
`)
138+
if err == sql.ErrNoRows {
139+
return nil
140+
}
141+
if err != nil {
142+
return sdk.WithStack(err)
143+
}
144+
defer rows.Close()
145+
146+
var links []*group.LinkGroupProject
147+
148+
for rows.Next() {
149+
var id int64
150+
var groupID int64
151+
var projectID int64
152+
var role int
153+
if err := rows.Scan(&id, &groupID, &projectID, &role); err != nil {
154+
return sdk.WithStack(err)
155+
}
156+
157+
var l = group.LinkGroupProject{
158+
ID: id,
159+
GroupID: groupID,
160+
ProjectID: projectID,
161+
Role: role,
162+
}
163+
164+
links = append(links, &l)
165+
}
166+
167+
for _, l := range links {
168+
if err := group.UpdateLinkGroupProject(tx, l); err != nil {
169+
return sdk.WithStack(err)
170+
}
171+
}
172+
173+
if err := tx.Commit(); err != nil {
174+
return sdk.WithStack(err)
175+
}
176+
177+
return nil
178+
}
179+
123180
// RefactorGroupMembership .
124181
func RefactorGroupMembership(ctx context.Context, db *gorp.DbMap) error {
125182
log.Debug("migrate.RefactorGroupMembership> begin")
@@ -135,5 +192,9 @@ func RefactorGroupMembership(ctx context.Context, db *gorp.DbMap) error {
135192
return err
136193
}
137194

195+
if err := refactorLinkGroupProject(ctx, db); err != nil {
196+
return err
197+
}
198+
138199
return nil
139200
}

0 commit comments

Comments
 (0)
0