openstreetmap-website/db/migrate/051_add_status_to_user.rb
Andy Allan d130db9fa8 Avoid more models in old migrations
Although these migrations run fine today, they could break in the future
if changes are made to the current model code.
2019-07-17 12:16:20 +02:00

32 lines
1.1 KiB
Ruby

require "migrate"
class AddStatusToUser < ActiveRecord::Migration[4.2]
class User < ActiveRecord::Base
end
def self.up
create_enumeration :user_status_enum, %w[pending active confirmed suspended deleted]
add_column :users, :status, :user_status_enum, :null => false, :default => "pending"
User.where(:visible => false).update_all(:status => "deleted")
User.where(:visible => true, :active => 0).update_all(:status => "pending")
User.where(:visible => true, :active => 1).update_all(:status => "active")
remove_column :users, :active
remove_column :users, :visible
end
def self.down
add_column :users, :visible, :boolean, :default => true, :null => false
add_column :users, :active, :integer, :default => 0, :null => false
User.where(:status => "active").update_all(:visible => true, :active => 1)
User.where(:status => "pending").update_all(:visible => true, :active => 0)
User.where(:status => "deleted").update_all(:visible => false, :active => 1)
remove_column :users, :status
drop_enumeration :user_status_enum
end
end