Browse Source

Fixes #4049 - Can't delete smime certificate - ERROR: duplicate key value violates unique constraint.

Rolf Schmidt 2 years ago
parent
commit
1d94cb5d41

+ 10 - 0
db/migrate/20220405133444_issue4049_fix_object_lookup.rb

@@ -0,0 +1,10 @@
+# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
+
+class Issue4049FixObjectLookup < ActiveRecord::Migration[6.1]
+  def change
+    # return if it's a new setup
+    return if !Setting.exists?(name: 'system_init_done')
+
+    ObjectLookup.find_by(name: 'SmimeCertificate')&.update(name: 'SMIMECertificate')
+  end
+end

+ 16 - 0
spec/db/migrate/issue_4049_fix_object_lookup_spec.rb

@@ -0,0 +1,16 @@
+# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
+
+require 'rails_helper'
+
+RSpec.describe Issue4049FixObjectLookup, type: :db_migration do
+  before do
+    # create and update to wrong state in pre release
+    ObjectLookup.by_name('SMIMECertificate')
+    ObjectLookup.find_by(name: 'SMIMECertificate').update(name: 'SmimeCertificate')
+  end
+
+  it 'does fix the broken object lookup' do
+    migrate
+    expect(ObjectLookup.by_name('SMIMECertificate')).not_to be_nil
+  end
+end