1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
- class SMIMEMetaInformationTable < ActiveRecord::Migration[6.1]
- def change
- # return if it's a new setup
- return if !Setting.exists?(name: 'system_init_done')
- migrate_table
- end
- private
- def migrate_table
- change_table :smime_certificates do |t|
- remove_columns(t)
- rename_columns(t)
- add_columns(t)
- end
- SMIMECertificate.reset_column_information
- end
- def remove_columns(t)
- t.remove_index :modulus if t.index_exists?(:modulus)
- t.remove_index :subject if t.index_exists?(:subject)
- t.remove :subject, :doc_hash, :not_before_at, :not_after_at
- end
- def rename_columns(t)
- t.rename :modulus, :uid
- t.rename :raw, :pem
- end
- def add_columns(t)
- if Rails.application.config.db_column_array
- t.column :email_addresses, :string, null: true, array: true
- else
- t.column :email_addresses, :json, null: true
- end
- t.string :issuer_hash, limit: 128, null: true
- t.string :subject_hash, limit: 128, null: true
- t.index [:uid]
- end
- end
|