Commit 6e0a4fc1 authored by Rubén Dávila's avatar Rubén Dávila

Convert migrations to generate subkeys to a background migration

parent dd139e65
# See http://doc.gitlab.com/ce/development/migration_style_guide.html
# for more information on how to write migrations for GitLab.
class ScheduleCreateGpgKeySubkeysFromGpgKeys < ActiveRecord::Migration
disable_ddl_transaction!
DOWNTIME = false
class GpgKey < ActiveRecord::Base
self.table_name = 'gpg_keys'
end
def up
GpgKey.select(:id).in_batches do |relation|
jobs = relation.pluck(:id).map do |id|
['CreateGpgKeySubkeysFromGpgKeys', [id]]
end
BackgroundMigrationWorker.perform_bulk(jobs)
end
end
def down
end
end
......@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20171004121444) do
ActiveRecord::Schema.define(version: 20171005130944) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
......
# See http://doc.gitlab.com/ce/development/migration_style_guide.html
# for more information on how to write migrations for GitLab.
class CreateGpgKeySubkeysForExistingGpgKeys < ActiveRecord::Migration
disable_ddl_transaction!
DOWNTIME = false
class Gitlab::BackgroundMigration::CreateGpgKeySubkeysFromGpgKeys
class GpgKey < ActiveRecord::Base
self.table_name = 'gpg_keys'
......@@ -27,17 +20,13 @@ class CreateGpgKeySubkeysForExistingGpgKeys < ActiveRecord::Migration
sha_attribute :fingerprint
end
def up
GpgKey.with_subkeys.each_batch do |batch|
batch.each do |gpg_key|
next if gpg_key.subkeys.any?
def perform(gpg_key_id)
gpg_key = GpgKey.find_by(id: gpg_key_id)
create_subkeys(gpg_key) && update_signatures(gpg_key)
end
end
end
return if gpg_key.nil?
return if gpg_key.subkeys.any?
def down
create_subkeys(gpg_key) && update_signatures(gpg_key)
end
private
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment