diff --git a/db/migrate/20170222111732_create_gpg_keys.rb b/db/migrate/20170222111732_create_gpg_keys.rb
index ec619394f6ae764294b38a46a4065e7cb85699f6..541228e8735057f20aad5a78c7be6c8211a8f3e7 100644
--- a/db/migrate/20170222111732_create_gpg_keys.rb
+++ b/db/migrate/20170222111732_create_gpg_keys.rb
@@ -12,7 +12,8 @@ class CreateGpgKeys < ActiveRecord::Migration
 
       t.text :key
 
-      t.index :primary_keyid, length: Gitlab::Database.mysql? ? 20 : nil
+      t.index :primary_keyid, unique: true, length: Gitlab::Database.mysql? ? 20 : nil
+      t.index :fingerprint, unique: true, length: Gitlab::Database.mysql? ? 20 : nil
     end
   end
 end
diff --git a/db/schema.rb b/db/schema.rb
index 1a7eb2ded76ce4ea0be8bfd8e735a7095ea91f93..2cc8b1624c0862217796f23a2b2f9b2dd0d4f99b 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -549,7 +549,8 @@ ActiveRecord::Schema.define(version: 20170725145659) do
     t.text "key"
   end
 
-  add_index "gpg_keys", ["primary_keyid"], name: "index_gpg_keys_on_primary_keyid", using: :btree
+  add_index "gpg_keys", ["fingerprint"], name: "index_gpg_keys_on_fingerprint", unique: true, using: :btree
+  add_index "gpg_keys", ["primary_keyid"], name: "index_gpg_keys_on_primary_keyid", unique: true, using: :btree
   add_index "gpg_keys", ["user_id"], name: "index_gpg_keys_on_user_id", using: :btree
 
   create_table "gpg_signatures", force: :cascade do |t|