Files
archived-hc-harbor/db/migrate/20250705_migrate_admin_levels_on_users.rb
2025-07-05 22:14:47 -04:00

42 lines
1.1 KiB
Ruby

class MigrateAdminLevelsOnUsers < ActiveRecord::Migration[7.0]
def up
add_column :users, :admin_level, :integer, default: 0, null: false
User.reset_column_information
User.find_each do |user|
if user.is_superadmin
user.update_column(:admin_level, 1)
elsif user.is_admin
user.update_column(:admin_level, 2)
else
user.update_column(:admin_level, 0)
end
end
remove_column :users, :is_admin, :boolean
remove_column :users, :is_superadmin, :boolean
end
def down
add_column :users, :is_admin, :boolean, default: false, null: false
add_column :users, :is_superadmin, :boolean, default: false, null: false
User.reset_column_information
User.find_each do |user|
case user.admin_level
when 1
user.update_column(:is_superadmin, true)
user.update_column(:is_admin, true)
when 2
user.update_column(:is_admin, true)
user.update_column(:is_superadmin, false)
else
user.update_column(:is_admin, false)
user.update_column(:is_superadmin, false)
end
end
remove_column :users, :admin_level, :integer
end
end