Skip to content
Snippets Groups Projects
Commit 6e0a4fc1 authored by Rubén Dávila's avatar Rubén Dávila
Browse files

Convert migrations to generate subkeys to a background migration

parent dd139e65
No related branches found
No related tags found
No related merge requests found
# 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
Loading
Loading
@@ -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"
Loading
Loading
# 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'
 
Loading
Loading
@@ -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
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment