comparison db/migrate/20100129193402_change_users_mail_notification_to_string.rb @ 1526:404aa68d4227

Merge from live branch
author Chris Cannam
date Thu, 11 Sep 2014 12:46:20 +0100
parents dffacf8a6908
children
comparison
equal deleted inserted replaced
1493:a5f2bdf3b486 1526:404aa68d4227
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