comparison db/migrate/20100129193402_change_users_mail_notification_to_string.rb @ 1517:dffacf8a6908 redmine-2.5

Update to Redmine SVN revision 13367 on 2.5-stable branch
author Chris Cannam
date Tue, 09 Sep 2014 09:29:00 +0100
parents 8661b858af72
children
comparison
equal deleted inserted replaced
1516:b450a9d58aed 1517:dffacf8a6908
1 class ChangeUsersMailNotificationToString < ActiveRecord::Migration 1 class ChangeUsersMailNotificationToString < ActiveRecord::Migration
2 def self.up 2 def self.up
3 rename_column :users, :mail_notification, :mail_notification_bool 3 rename_column :users, :mail_notification, :mail_notification_bool
4 add_column :users, :mail_notification, :string, :default => '', :null => false 4 add_column :users, :mail_notification, :string, :default => '', :null => false
5 User.update_all("mail_notification = 'all'", "mail_notification_bool = #{connection.quoted_true}") 5 User.where("mail_notification_bool = #{connection.quoted_true}").
6 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)") 6 update_all("mail_notification = 'all'")
7 User.update_all("mail_notification = 'only_my_events'", "mail_notification NOT IN ('all', 'selected')") 7 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)").
8 update_all("mail_notification = 'selected'")
9 User.where("mail_notification NOT IN ('all', 'selected')").
10 update_all("mail_notification = 'only_my_events'")
8 remove_column :users, :mail_notification_bool 11 remove_column :users, :mail_notification_bool
9 end 12 end
10 13
11 def self.down 14 def self.down
12 rename_column :users, :mail_notification, :mail_notification_char 15 rename_column :users, :mail_notification, :mail_notification_char
13 add_column :users, :mail_notification, :boolean, :default => true, :null => false 16 add_column :users, :mail_notification, :boolean, :default => true, :null => false
14 User.update_all("mail_notification = #{connection.quoted_false}", "mail_notification_char <> 'all'") 17 User.where("mail_notification_char <> 'all'").
18 update_all("mail_notification = #{connection.quoted_false}")
15 remove_column :users, :mail_notification_char 19 remove_column :users, :mail_notification_char
16 end 20 end
17 end 21 end