79f591df4d
Without downtime, so we need the symlinks
60 lines
1.4 KiB
Ruby
60 lines
1.4 KiB
Ruby
class MoveSystemUploadFolder < ActiveRecord::Migration
|
|
include Gitlab::Database::MigrationHelpers
|
|
disable_ddl_transaction!
|
|
|
|
DOWNTIME = false
|
|
|
|
def up
|
|
unless file_storage?
|
|
say 'Using object storage, no need to move.'
|
|
return
|
|
end
|
|
|
|
unless File.directory?(old_directory)
|
|
say "#{old_directory} doesn't exist, no need to move it."
|
|
return
|
|
end
|
|
|
|
FileUtils.mkdir_p(File.join(base_directory, '-'))
|
|
|
|
say "Moving #{old_directory} -> #{new_directory}"
|
|
FileUtils.mv(old_directory, new_directory)
|
|
FileUtils.ln_s(new_directory, old_directory)
|
|
end
|
|
|
|
def down
|
|
unless file_storage?
|
|
say 'Using object storage, no need to move.'
|
|
return
|
|
end
|
|
|
|
unless File.directory?(new_directory)
|
|
say "#{new_directory} doesn't exist, no need to move it."
|
|
return
|
|
end
|
|
|
|
if File.symlink?(old_directory)
|
|
say "Removing #{old_directory} -> #{new_directory} symlink"
|
|
FileUtils.rm(old_directory)
|
|
end
|
|
|
|
say "Moving #{new_directory} -> #{old_directory}"
|
|
FileUtils.mv(new_directory, old_directory)
|
|
end
|
|
|
|
def new_directory
|
|
File.join(base_directory, '-', 'system')
|
|
end
|
|
|
|
def old_directory
|
|
File.join(base_directory, 'system')
|
|
end
|
|
|
|
def base_directory
|
|
File.join(Rails.root, 'public', 'uploads')
|
|
end
|
|
|
|
def file_storage?
|
|
CarrierWave::Uploader::Base.storage == CarrierWave::Storage::File
|
|
end
|
|
end
|