From 7b22381603d4f2cddc87b1b70e5be076df63cf01 Mon Sep 17 00:00:00 2001 From: Jan Provaznik Date: Wed, 7 Mar 2018 13:52:29 +0100 Subject: Reschedule commits_count background migration We still have >100K unmigrated MergeRequestDiffs which don't have commits_count set yet (see https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/17567#note_61904891) This migration re-schedules the original background migration. To assure that records are not processed twice, records with commits_count set are skipped. Related to #41698 and !17567 --- ...le_commits_count_for_merge_request_diff_spec.rb | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 spec/migrations/reschedule_commits_count_for_merge_request_diff_spec.rb (limited to 'spec/migrations') diff --git a/spec/migrations/reschedule_commits_count_for_merge_request_diff_spec.rb b/spec/migrations/reschedule_commits_count_for_merge_request_diff_spec.rb new file mode 100644 index 00000000000..26489ef58bd --- /dev/null +++ b/spec/migrations/reschedule_commits_count_for_merge_request_diff_spec.rb @@ -0,0 +1,37 @@ +require 'spec_helper' +require Rails.root.join('db', 'migrate', '20180309121820_reschedule_commits_count_for_merge_request_diff') + +describe RescheduleCommitsCountForMergeRequestDiff, :migration, :sidekiq do + let(:merge_request_diffs) { table(:merge_request_diffs) } + let(:merge_requests) { table(:merge_requests) } + let(:projects) { table(:projects) } + let(:namespaces) { table(:namespaces) } + + before do + stub_const("#{described_class.name}::BATCH_SIZE", 1) + + namespaces.create!(id: 1, name: 'gitlab', path: 'gitlab') + + projects.create!(id: 1, namespace_id: 1) + + merge_requests.create!(id: 1, target_project_id: 1, source_project_id: 1, target_branch: 'feature', source_branch: 'master') + + merge_request_diffs.create!(id: 1, merge_request_id: 1) + merge_request_diffs.create!(id: 2, merge_request_id: 1) + merge_request_diffs.create!(id: 3, merge_request_id: 1, commits_count: 0) + merge_request_diffs.create!(id: 4, merge_request_id: 1) + end + + it 'correctly schedules background migrations' do + Sidekiq::Testing.fake! do + Timecop.freeze do + migrate! + + expect(described_class::MIGRATION).to be_scheduled_delayed_migration(5.minutes, 1, 1) + expect(described_class::MIGRATION).to be_scheduled_delayed_migration(10.minutes, 2, 2) + expect(described_class::MIGRATION).to be_scheduled_delayed_migration(15.minutes, 4, 4) + expect(BackgroundMigrationWorker.jobs.size).to eq 3 + end + end + end +end -- cgit v1.2.1 From b4e8e7ed3aab3a55a6a77b8c6473ad5fafb75ae6 Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Wed, 14 Mar 2018 00:52:34 +0900 Subject: Add feartue spec. Fix failed test --- spec/migrations/migrate_old_artifacts_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'spec/migrations') diff --git a/spec/migrations/migrate_old_artifacts_spec.rb b/spec/migrations/migrate_old_artifacts_spec.rb index 92eb1d9ce86..3a6fab6572c 100644 --- a/spec/migrations/migrate_old_artifacts_spec.rb +++ b/spec/migrations/migrate_old_artifacts_spec.rb @@ -66,7 +66,7 @@ describe MigrateOldArtifacts do end it 'all files do have artifacts' do - Ci::Build.with_artifacts do |build| + Ci::Build.with_artifacts(:archive) do |build| expect(build).to have_artifacts end end -- cgit v1.2.1 From 63a1c74c59142ad39a93d6089dbd30c7f489367d Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Fri, 16 Mar 2018 00:11:49 +0900 Subject: Fix spec --- spec/migrations/migrate_old_artifacts_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'spec/migrations') diff --git a/spec/migrations/migrate_old_artifacts_spec.rb b/spec/migrations/migrate_old_artifacts_spec.rb index 3a6fab6572c..638b2853374 100644 --- a/spec/migrations/migrate_old_artifacts_spec.rb +++ b/spec/migrations/migrate_old_artifacts_spec.rb @@ -66,7 +66,7 @@ describe MigrateOldArtifacts do end it 'all files do have artifacts' do - Ci::Build.with_artifacts(:archive) do |build| + Ci::Build.with_artifacts_archive do |build| expect(build).to have_artifacts end end -- cgit v1.2.1