2011-10-29 16:19:11 +04:00
#-- encoding: UTF-8
2011-05-30 00:11:52 +04:00
#-- copyright
# ChiliProject is a project management system.
2011-05-30 22:52:25 +04:00
#
2012-01-03 23:36:40 +04:00
# Copyright (C) 2010-2012 the ChiliProject Team
2011-05-30 22:52:25 +04:00
#
2011-05-30 00:11:52 +04:00
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
2011-05-30 22:52:25 +04:00
#
2011-05-30 00:11:52 +04:00
# See doc/COPYRIGHT.rdoc for more details.
#++
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
User . update_all ( " mail_notification = 'all' " , " mail_notification_bool = #{ connection . quoted_true } " )
User . update_all ( " mail_notification = 'selected' " , " 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) " )
User . update_all ( " mail_notification = 'only_my_events' " , " mail_notification NOT IN ('all', 'selected') " )
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
User . update_all ( " mail_notification = #{ connection . quoted_false } " , " mail_notification_char <> 'all' " )
remove_column :users , :mail_notification_char
2010-09-28 22:22:00 +04:00
end
end