diff --git a/app/models/gpg_key.rb b/app/models/gpg_key.rb index da2875a88517547166d123000bf54364a47b52d2..47ebfc9d234f255463965369057f348abb5d0285 100644 --- a/app/models/gpg_key.rb +++ b/app/models/gpg_key.rb @@ -7,7 +7,7 @@ class GpgKey < ActiveRecord::Base sha_attribute :fingerprint belongs_to :user - has_many :gpg_signatures, dependent: :nullify + has_many :gpg_signatures validates :user, presence: true diff --git a/app/models/user.rb b/app/models/user.rb index 03a76f4fa234e6c386b05f3c3c3fb5cc1f11b67f..6e66c587a1f9006f9860d8d001592baaee67bf69 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -76,7 +76,7 @@ class User < ActiveRecord::Base where(type.not_eq('DeployKey').or(type.eq(nil))) end, dependent: :destroy # rubocop:disable Cop/ActiveRecordDependent has_many :deploy_keys, -> { where(type: 'DeployKey') }, dependent: :destroy # rubocop:disable Cop/ActiveRecordDependent - has_many :gpg_keys, dependent: :destroy + has_many :gpg_keys has_many :emails, dependent: :destroy # rubocop:disable Cop/ActiveRecordDependent has_many :personal_access_tokens, dependent: :destroy # rubocop:disable Cop/ActiveRecordDependent diff --git a/db/migrate/20170222111732_create_gpg_keys.rb b/db/migrate/20170222111732_create_gpg_keys.rb index 7591238311f2982f2fdb5eb956fe442a9ac02956..072c0819b2f48f9f443c76e7dafd31ec2cb90b6c 100644 --- a/db/migrate/20170222111732_create_gpg_keys.rb +++ b/db/migrate/20170222111732_create_gpg_keys.rb @@ -5,7 +5,7 @@ class CreateGpgKeys < ActiveRecord::Migration create_table :gpg_keys do |t| t.timestamps_with_timezone null: false - t.references :user, index: true, foreign_key: true + t.references :user, index: true, foreign_key: { on_delete: :cascade } t.binary :primary_keyid, limit: Gitlab::Database.mysql? ? 20 : nil t.binary :fingerprint, limit: Gitlab::Database.mysql? ? 20 : nil diff --git a/db/migrate/20170613154149_create_gpg_signatures.rb b/db/migrate/20170613154149_create_gpg_signatures.rb index d1fe4b96a409d52b8040f364eba87d2e214ee921..db86170776d6367477a3595e8b98fe3bf0060fea 100644 --- a/db/migrate/20170613154149_create_gpg_signatures.rb +++ b/db/migrate/20170613154149_create_gpg_signatures.rb @@ -5,8 +5,8 @@ class CreateGpgSignatures < ActiveRecord::Migration create_table :gpg_signatures do |t| t.timestamps_with_timezone null: false - t.references :project, index: true, foreign_key: true - t.references :gpg_key, index: true, foreign_key: true + t.references :project, index: true, foreign_key: { on_delete: :cascade } + t.references :gpg_key, index: true, foreign_key: { on_delete: :nullify } t.boolean :valid_signature diff --git a/db/schema.rb b/db/schema.rb index 6fa8be79156732abb5b7bd28a5b496f653e556fe..1a7eb2ded76ce4ea0be8bfd8e735a7095ea91f93 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -1631,9 +1631,9 @@ ActiveRecord::Schema.define(version: 20170725145659) do add_foreign_key "environments", "projects", name: "fk_d1c8c1da6a", on_delete: :cascade add_foreign_key "events", "projects", name: "fk_0434b48643", on_delete: :cascade add_foreign_key "forked_project_links", "projects", column: "forked_to_project_id", name: "fk_434510edb0", on_delete: :cascade - add_foreign_key "gpg_keys", "users" - add_foreign_key "gpg_signatures", "gpg_keys" - add_foreign_key "gpg_signatures", "projects" + add_foreign_key "gpg_keys", "users", on_delete: :cascade + add_foreign_key "gpg_signatures", "gpg_keys", on_delete: :nullify + add_foreign_key "gpg_signatures", "projects", on_delete: :cascade add_foreign_key "issue_assignees", "issues", name: "fk_b7d881734a", on_delete: :cascade add_foreign_key "issue_assignees", "users", name: "fk_5e0c8d9154", on_delete: :cascade add_foreign_key "issue_metrics", "issues", on_delete: :cascade