summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMichael Kozono <mkozono@gmail.com>2017-11-07 12:53:24 -0800
committerMichael Kozono <mkozono@gmail.com>2017-12-01 15:26:40 -0800
commit8315c66a569bbc1b4806762e4da49c22813fc523 (patch)
treeab1662d21a2a296d7dcfefa8c92d46e178b1cdcc /lib
parentb6ea41d13073ce8b4d16b2edb602c82aae10ea0b (diff)
downloadgitlab-ce-8315c66a569bbc1b4806762e4da49c22813fc523.tar.gz
Kick off follow up background migration jobs
To process the unhashed_upload_files table.
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab/background_migration/populate_untracked_uploads.rb51
-rw-r--r--lib/gitlab/background_migration/prepare_unhashed_uploads.rb8
2 files changed, 58 insertions, 1 deletions
diff --git a/lib/gitlab/background_migration/populate_untracked_uploads.rb b/lib/gitlab/background_migration/populate_untracked_uploads.rb
new file mode 100644
index 00000000000..6dbef41cff8
--- /dev/null
+++ b/lib/gitlab/background_migration/populate_untracked_uploads.rb
@@ -0,0 +1,51 @@
+module Gitlab
+ module BackgroundMigration
+ class PopulateUntrackedUploads
+ class UnhashedUploadFile < ActiveRecord::Base
+ self.table_name = 'unhashed_upload_files'
+
+ scope :untracked, -> { where(tracked: false) }
+
+ def ensure_tracked!
+ # TODO
+ # unless unhashed_upload_file.in_uploads?
+ # unhashed_upload_file.add_to_uploads
+ # end
+ #
+ # unhashed_upload_file.mark_as_tracked
+ end
+
+ def model_id
+ # TODO
+ end
+
+ def model_type
+ # TODO
+ end
+
+ def uploader
+ # TODO
+ end
+ end
+
+ class Upload < ActiveRecord::Base
+ self.table_name = 'uploads'
+ end
+
+ def perform(start_id, end_id)
+ return unless migrate?
+
+ files = UnhashedUploadFile.untracked.where(id: start_id..end_id)
+ files.each do |unhashed_upload_file|
+ unhashed_upload_file.ensure_tracked!
+ end
+ end
+
+ private
+
+ def migrate?
+ UnhashedUploadFile.table_exists? && Upload.table_exists?
+ end
+ end
+ end
+end
diff --git a/lib/gitlab/background_migration/prepare_unhashed_uploads.rb b/lib/gitlab/background_migration/prepare_unhashed_uploads.rb
index 11f43044829..556457039fa 100644
--- a/lib/gitlab/background_migration/prepare_unhashed_uploads.rb
+++ b/lib/gitlab/background_migration/prepare_unhashed_uploads.rb
@@ -1,10 +1,16 @@
module Gitlab
module BackgroundMigration
class PrepareUnhashedUploads
+ # For bulk_queue_background_migration_jobs_by_range
+ include Database::MigrationHelpers
+
FILE_PATH_BATCH_SIZE = 500
UPLOAD_DIR = "#{CarrierWave.root}/uploads"
+ FOLLOW_UP_MIGRATION = 'PopulateUntrackedUploads'
class UnhashedUploadFile < ActiveRecord::Base
+ include EachBatch
+
self.table_name = 'unhashed_upload_files'
end
@@ -74,7 +80,7 @@ module Gitlab
end
def schedule_populate_untracked_uploads_jobs
- # TODO
+ bulk_queue_background_migration_jobs_by_range(UnhashedUploadFile, FOLLOW_UP_MIGRATION)
end
end
end