FIX: Drop and recreate column properly for directory_columns (#13429)

This commit is contained in:
Mark VanLandingham 2021-06-17 15:56:48 -05:00 committed by GitHub
parent faca5c09fd
commit 33c3bb261a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 25 additions and 0 deletions

View File

@ -0,0 +1,25 @@
# frozen_string_literal: true
class ChangeAutomaticOnDirectoryColumnsToBool < ActiveRecord::Migration[6.1]
def up
begin
Migration::SafeMigrate.disable!
# Because of a weird state we are in where some sites have a boolean type column for `automatic` and some
# have an `integer`type, we remove the column. Then we re-create it and using `user_field_id` to determine
# if the value should be true or false.
remove_column :directory_columns, :automatic
add_column :directory_columns, :automatic, :boolean, default: true, null: false
execute <<~SQL
UPDATE directory_columns SET automatic = (user_field_id IS NULL);
SQL
ensure
Migration::SafeMigrate.enable!
end
end
def down
raise ActiveRecord::IrreversibleMigration
end
end