2010-09-28 22:22:00 +04:00
class ChangeUsersMailNotificationToString < ActiveRecord :: Migration
def self . up
2010-11-20 12:55:06 +03:00
rename_column :users , :mail_notification , :mail_notification_bool
add_column :users , :mail_notification , :string , :default = > '' , :null = > false
2014-01-07 14:03:11 +04:00
User . where ( " mail_notification_bool = #{ connection . quoted_true } " ) .
update_all ( " mail_notification = 'all' " )
User . where ( " EXISTS (SELECT 1 FROM #{ Member . table_name } WHERE #{ Member . table_name } .mail_notification = #{ connection . quoted_true } AND #{ Member . table_name } .user_id = #{ User . table_name } .id) " ) .
update_all ( " mail_notification = 'selected' " )
User . where ( " mail_notification NOT IN ('all', 'selected') " ) .
update_all ( " mail_notification = 'only_my_events' " )
2010-11-20 12:55:06 +03:00
remove_column :users , :mail_notification_bool
2010-09-28 22:22:00 +04:00
end
def self . down
2010-11-20 12:55:06 +03:00
rename_column :users , :mail_notification , :mail_notification_char
add_column :users , :mail_notification , :boolean , :default = > true , :null = > false
2014-01-07 14:03:11 +04:00
User . where ( " mail_notification_char <> 'all' " ) .
update_all ( " mail_notification = #{ connection . quoted_false } " )
2010-11-20 12:55:06 +03:00
remove_column :users , :mail_notification_char
2010-09-28 22:22:00 +04:00
end
end