Rake task for storage rollback
This commit is contained in:
parent
4471ab81c8
commit
ff2ca3569e
1 changed files with 45 additions and 0 deletions
|
@ -45,6 +45,51 @@ namespace :gitlab do
|
|||
puts ' Done!'
|
||||
end
|
||||
|
||||
desc 'GitLab | Storage | Rollback existing projects to Legacy Storage'
|
||||
task rollback_to_legacy: :environment do
|
||||
if Gitlab::Database.read_only?
|
||||
warn 'This task requires database write access. Exiting.'
|
||||
|
||||
next
|
||||
end
|
||||
|
||||
storage_migrator = Gitlab::HashedStorage::Migrator.new
|
||||
helper = Gitlab::HashedStorage::RakeHelper
|
||||
|
||||
if helper.range_single_item?
|
||||
project = Project.with_storage_feature(:repository).find_by(id: helper.range_from)
|
||||
|
||||
unless project
|
||||
warn "There are no projects that can be rolledback with ID=#{helper.range_from}"
|
||||
|
||||
next
|
||||
end
|
||||
|
||||
puts "Enqueueing storage rollback of #{project.full_path} (ID=#{project.id})..."
|
||||
storage_migrator.rollback(project)
|
||||
|
||||
next
|
||||
end
|
||||
|
||||
hashed_projects_count = Project.with_storage_feature(:repository).count
|
||||
|
||||
if hashed_projects_count == 0
|
||||
warn 'There are no projects that can have storage rolledback. Nothing to do!'
|
||||
|
||||
next
|
||||
end
|
||||
|
||||
print "Enqueuing rollback of #{hashed_projects_count} projects in batches of #{helper.batch_size}"
|
||||
|
||||
helper.project_id_batches do |start, finish|
|
||||
storage_migrator.bulk_schedule(start: start, finish: finish, operation: :rollback)
|
||||
|
||||
print '.'
|
||||
end
|
||||
|
||||
puts ' Done!'
|
||||
end
|
||||
|
||||
desc 'Gitlab | Storage | Summary of existing projects using Legacy Storage'
|
||||
task legacy_projects: :environment do
|
||||
helper = Gitlab::HashedStorage::RakeHelper
|
||||
|
|
Loading…
Reference in a new issue