gitlab-org--gitlab-foss/lib/gitlab/background_migration/migrate_system_uploads_to_n...

30 lines
762 B
Ruby
Raw Normal View History

# frozen_string_literal: true
# rubocop:disable Style/Documentation
module Gitlab
module BackgroundMigration
class MigrateSystemUploadsToNewFolder
include Gitlab::Database::MigrationHelpers
attr_reader :old_folder, :new_folder
2017-07-17 16:11:07 +00:00
class Upload < ActiveRecord::Base
self.table_name = 'uploads'
include EachBatch
end
2017-07-17 16:11:07 +00:00
def perform(old_folder, new_folder)
replace_sql = replace_sql(uploads[:path], old_folder, new_folder)
2017-07-17 16:11:07 +00:00
affected_uploads = Upload.where(uploads[:path].matches("#{old_folder}%"))
2017-07-17 16:11:07 +00:00
affected_uploads.each_batch do |batch|
batch.update_all("path = #{replace_sql}")
end
end
def uploads
Arel::Table.new('uploads')
end
end
end
end