29 lines
1 KiB
Ruby
29 lines
1 KiB
Ruby
require 'migrate'
|
|
|
|
class AddStatusToUser < ActiveRecord::Migration
|
|
def self.up
|
|
create_enumeration :user_status_enum, ["pending","active","confirmed","suspended","deleted"]
|
|
|
|
add_column :users, :status, :user_status_enum, :null => false, :default => "pending"
|
|
|
|
User.update_all("status = 'deleted'", { :visible => false })
|
|
User.update_all("status = 'pending'", { :visible => true, :active => 0 })
|
|
User.update_all("status = 'active'", { :visible => true, :active => 1 })
|
|
|
|
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.update_all("visible = true, active = 1", { :status => "active" })
|
|
User.update_all("visible = true, active = 0", { :status => "pending" })
|
|
User.update_all("visible = false, active = 1", { :status => "deleted" })
|
|
|
|
remove_column :users, :status
|
|
|
|
drop_enumeration :user_status_enum
|
|
end
|
|
end
|