diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2018-03-30 13:25:46 +0000 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2018-03-30 13:25:46 +0000 |
commit | 4d61672506be65ac0ec33341c0a6e9645d399311 (patch) | |
tree | f0385ef34f9aeaf11a06da8b814b2aa1b384c688 | |
parent | 72f2f384dec7a6e4a78dadf5a2f6afbbf0eb3ea7 (diff) | |
parent | 316eb6ef60f00f47ab6ce0e6e24f88de9ac149eb (diff) | |
download | gitlab-ce-4d61672506be65ac0ec33341c0a6e9645d399311.tar.gz |
Merge branch '44774-migrate-upload-task-fails-for-upload-with-store-nil' into 'master'
Resolve "Migrate upload task fails for Upload with `store: nil`"
Closes #44774
See merge request gitlab-org/gitlab-ce!18082
3 files changed, 24 insertions, 5 deletions
diff --git a/changelogs/unreleased/44774-migrate-upload-task-fails-for-upload-with-store-nil.yml b/changelogs/unreleased/44774-migrate-upload-task-fails-for-upload-with-store-nil.yml new file mode 100644 index 00000000000..372f4293964 --- /dev/null +++ b/changelogs/unreleased/44774-migrate-upload-task-fails-for-upload-with-store-nil.yml @@ -0,0 +1,5 @@ +--- +title: Fixed gitlab:uploads:migrate task ignoring some uploads. +merge_request: 18082 +author: +type: fixed diff --git a/lib/tasks/gitlab/uploads/migrate.rake b/lib/tasks/gitlab/uploads/migrate.rake index c26c3ccb3be..e7e656a911b 100644 --- a/lib/tasks/gitlab/uploads/migrate.rake +++ b/lib/tasks/gitlab/uploads/migrate.rake @@ -25,8 +25,8 @@ namespace :gitlab do Upload.class_eval { include EachBatch } unless Upload < EachBatch Upload - .where.not(store: @to_store) - .where(uploader: @uploader_class.to_s, + .where(store: [nil, ObjectStorage::Store::LOCAL], + uploader: @uploader_class.to_s, model_type: @model_class.base_class.sti_name) end end diff --git a/spec/tasks/gitlab/uploads/migrate_rake_spec.rb b/spec/tasks/gitlab/uploads/migrate_rake_spec.rb index b778d26060d..53b1e45ba54 100644 --- a/spec/tasks/gitlab/uploads/migrate_rake_spec.rb +++ b/spec/tasks/gitlab/uploads/migrate_rake_spec.rb @@ -20,9 +20,23 @@ describe 'gitlab:uploads:migrate rake tasks' do run_rake_task("gitlab:uploads:migrate", *args) end - it 'enqueue jobs in batch' do - expect(ObjectStorage::MigrateUploadsWorker).to receive(:enqueue!).exactly(4).times + shared_examples 'enqueue jobs in batch' do |batch:| + it do + expect(ObjectStorage::MigrateUploadsWorker) + .to receive(:perform_async).exactly(batch).times + .and_return("A fake job.") - run + run + end + end + + it_behaves_like 'enqueue jobs in batch', batch: 4 + + context 'Upload has store = nil' do + before do + Upload.where(model: projects).update_all(store: nil) + end + + it_behaves_like 'enqueue jobs in batch', batch: 4 end end |