Add wrapper rake task to migrate all uploads to OS

Add a rake task that will trigger gitlab:uploads:migrate rake task with
different possible arguments, one by one.
This commit is contained in:
Balasankar "Balu" C 2018-09-17 21:42:10 +05:30
parent 623ba9fd64
commit c4668c388f
No known key found for this signature in database
GPG Key ID: B77D2E2E23735427
2 changed files with 30 additions and 1 deletions

View File

@ -0,0 +1,5 @@
---
title: Add wrapper rake task to migrate all uploads to OS
merge_request: 21779
author:
type: other

View File

@ -1,6 +1,30 @@
namespace :gitlab do
namespace :uploads do
desc 'GitLab | Uploads | Migrate the uploaded files to object storage'
namespace :migrate do
desc "GitLab | Uploads | Migrate all uploaded files to object storage"
task all: :environment do
categories = [%w(AvatarUploader Project :avatar),
%w(AvatarUploader Group :avatar),
%w(AvatarUploader User :avatar),
%w(AttachmentUploader Note :attachment),
%w(AttachmentUploader Appearance :logo),
%w(AttachmentUploader Appearance :header_logo),
%w(FaviconUploader Appearance :favicon),
%w(FileUploader Project),
%w(PersonalFileUploader Snippet),
%w(NamespaceFileUploader Snippet),
%w(FileUploader MergeRequest)]
categories.each do |args|
Rake::Task["gitlab:uploads:migrate"].invoke(*args)
Rake::Task["gitlab:uploads:migrate"].reenable
end
end
end
# The following is the actual rake task that migrates uploads of specified
# category to object storage
desc 'GitLab | Uploads | Migrate the uploaded files of specified type to object storage'
task :migrate, [:uploader_class, :model_class, :mounted_as] => :environment do |task, args|
batch_size = ENV.fetch('BATCH', 200).to_i
@to_store = ObjectStorage::Store::REMOTE