Migrate protected branch access levels to match constants in `Gitlab::Access`
- In the final round of review (!5081), we moved the protected branch access levels from Rails enums to constants from Gitlab::Access. - The migrations that moved us from the old data model (a single protected_branches table with developers_can_push and developers_can_merge flags) to the new one (separate tables for push_access_levels and merge_access_levels) was not updated. - These migrations still used 0 to mean "Masters" and 1 to mean "Developers" (matching the previous Rails enum), while Gitlab::Access uses 40 and 30 for these, respectively. - Once the migrations run, our data gets into a broken state. - We fix this by migrating all `0`s to `40` and all `1`s to `30`. - https://gitlab.com/gitlab-org/gitlab-ce/issues/20606#note_13561628 = Caveats = - In Gitlab::Access, 0 represents NO_ACCESS. When we run this migration, all protected branches with "No one" as an access level will be changed to "Masters"
This commit is contained in:
parent
532202a527
commit
8e13162ae1
|
@ -14,7 +14,7 @@ class MoveFromDevelopersCanMergeToProtectedBranchesMergeAccess < ActiveRecord::M
|
|||
def up
|
||||
execute <<-HEREDOC
|
||||
INSERT into protected_branch_merge_access_levels (protected_branch_id, access_level, created_at, updated_at)
|
||||
SELECT id, (CASE WHEN developers_can_merge THEN 1 ELSE 0 END), now(), now()
|
||||
SELECT id, (CASE WHEN developers_can_merge THEN 30 ELSE 40 END), now(), now()
|
||||
FROM protected_branches
|
||||
HEREDOC
|
||||
end
|
||||
|
@ -23,7 +23,7 @@ class MoveFromDevelopersCanMergeToProtectedBranchesMergeAccess < ActiveRecord::M
|
|||
execute <<-HEREDOC
|
||||
UPDATE protected_branches SET developers_can_merge = TRUE
|
||||
WHERE id IN (SELECT protected_branch_id FROM protected_branch_merge_access_levels
|
||||
WHERE access_level = 1);
|
||||
WHERE access_level = 30);
|
||||
HEREDOC
|
||||
end
|
||||
end
|
||||
|
|
|
@ -14,7 +14,7 @@ class MoveFromDevelopersCanPushToProtectedBranchesPushAccess < ActiveRecord::Mig
|
|||
def up
|
||||
execute <<-HEREDOC
|
||||
INSERT into protected_branch_push_access_levels (protected_branch_id, access_level, created_at, updated_at)
|
||||
SELECT id, (CASE WHEN developers_can_push THEN 1 ELSE 0 END), now(), now()
|
||||
SELECT id, (CASE WHEN developers_can_push THEN 30 ELSE 40 END), now(), now()
|
||||
FROM protected_branches
|
||||
HEREDOC
|
||||
end
|
||||
|
@ -23,7 +23,7 @@ class MoveFromDevelopersCanPushToProtectedBranchesPushAccess < ActiveRecord::Mig
|
|||
execute <<-HEREDOC
|
||||
UPDATE protected_branches SET developers_can_push = TRUE
|
||||
WHERE id IN (SELECT protected_branch_id FROM protected_branch_push_access_levels
|
||||
WHERE access_level = 1);
|
||||
WHERE access_level = 30);
|
||||
HEREDOC
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue