dc8d58138aa655d725c9bc4b957de83e3de60de7
[rails.git] / db / migrate / 051_add_status_to_user.rb
1 require 'migrate'
2
3 class AddStatusToUser < ActiveRecord::Migration
4   def self.up
5     create_enumeration :user_status_enum, %w(pending active confirmed suspended deleted)
6
7     add_column :users, :status, :user_status_enum, :null => false, :default => "pending"
8
9     User.where(:visible => false).update_all(:status => "deleted")
10     User.where(:visible => true, :active => 0).update_all(:status => "pending")
11     User.where(:visible => true, :active => 1).update_all(:status => "active")
12
13     remove_column :users, :active
14     remove_column :users, :visible
15   end
16
17   def self.down
18     add_column :users, :visible, :boolean, :default => true, :null => false
19     add_column :users, :active, :integer, :default => 0, :null => false
20
21     User.where(:status => "active").update_all(:visible => true, :active => 1)
22     User.where(:status => "pending").update_all(:visible => true, :active => 0)
23     User.where(:status => "deleted").update_all(:visible => false, :active => 1)
24
25     remove_column :users, :status
26
27     drop_enumeration :user_status_enum
28   end
29 end