# frozen_string_literal: true class AddEncryptedFieldsToApplicationSettings < ActiveRecord::Migration[5.2] include Gitlab::Database::MigrationHelpers DOWNTIME = false PLAINTEXT_ATTRIBUTES = %w[ akismet_api_key elasticsearch_aws_secret_access_key recaptcha_private_key recaptcha_site_key slack_app_secret slack_app_verification_token ].freeze # rubocop:disable Migration/PreventStrings # rubocop:disable Migration/AddLimitToTextColumns def up PLAINTEXT_ATTRIBUTES.each do |plaintext_attribute| add_column :application_settings, "encrypted_#{plaintext_attribute}", :text add_column :application_settings, "encrypted_#{plaintext_attribute}_iv", :string, limit: 255 end end # rubocop:enable Migration/AddLimitToTextColumns # rubocop:enable Migration/PreventStrings def down PLAINTEXT_ATTRIBUTES.each do |plaintext_attribute| remove_column :application_settings, "encrypted_#{plaintext_attribute}" remove_column :application_settings, "encrypted_#{plaintext_attribute}_iv" end end end