Commit f277fa14 authored by Yorick Peterse's avatar Yorick Peterse

Merge branch 'bvl-fork-network-migrations' into 'master'

Create fork networks for root projects that are deleted

Closes #38905

See merge request gitlab-org/gitlab-ce!14752
parents 781d2c22 392e5df7
...@@ -46,6 +46,11 @@ module Gitlab ...@@ -46,6 +46,11 @@ module Gitlab
FROM fork_network_members FROM fork_network_members
WHERE fork_network_members.project_id = forked_project_links.forked_to_project_id WHERE fork_network_members.project_id = forked_project_links.forked_to_project_id
) )
AND EXISTS (
SELECT true
FROM projects
WHERE forked_project_links.forked_from_project_id = projects.id
)
AND forked_project_links.id BETWEEN #{start_id} AND #{end_id} AND forked_project_links.id BETWEEN #{start_id} AND #{end_id}
MISSING_MEMBERS MISSING_MEMBERS
......
...@@ -20,6 +20,11 @@ module Gitlab ...@@ -20,6 +20,11 @@ module Gitlab
FROM fork_networks FROM fork_networks
WHERE forked_project_links.forked_from_project_id = fork_networks.root_project_id WHERE forked_project_links.forked_from_project_id = fork_networks.root_project_id
) )
AND EXISTS (
SELECT true
FROM projects
WHERE projects.id = forked_project_links.forked_from_project_id
)
AND forked_project_links.id BETWEEN #{start_id} AND #{end_id} AND forked_project_links.id BETWEEN #{start_id} AND #{end_id}
INSERT_NETWORKS INSERT_NETWORKS
......
...@@ -62,6 +62,14 @@ describe Gitlab::BackgroundMigration::PopulateForkNetworksRange, :migration, sch ...@@ -62,6 +62,14 @@ describe Gitlab::BackgroundMigration::PopulateForkNetworksRange, :migration, sch
expect(base2_membership).not_to be_nil expect(base2_membership).not_to be_nil
end end
it 'skips links that had their source project deleted' do
forked_project_links.create(id: 6, forked_from_project_id: 99999, forked_to_project_id: create(:project).id)
migration.perform(5, 8)
expect(fork_networks.find_by(root_project_id: 99999)).to be_nil
end
it 'schedules a job for inserting memberships for forks-of-forks' do it 'schedules a job for inserting memberships for forks-of-forks' do
delay = Gitlab::BackgroundMigration::CreateForkNetworkMembershipsRange::RESCHEDULE_DELAY delay = Gitlab::BackgroundMigration::CreateForkNetworkMembershipsRange::RESCHEDULE_DELAY
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment