To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.
root / db / migrate / 20100129193402_change_users_mail_notification_to_string.rb @ 1298:4f746d8966dd
History | View | Annotate | Download (1.05 KB)
| 1 |
class ChangeUsersMailNotificationToString < ActiveRecord::Migration |
|---|---|
| 2 |
def self.up |
| 3 |
rename_column :users, :mail_notification, :mail_notification_bool |
| 4 |
add_column :users, :mail_notification, :string, :default => '', :null => false |
| 5 |
User.update_all("mail_notification = 'all'", "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)") |
| 7 |
User.update_all("mail_notification = 'only_my_events'", "mail_notification NOT IN ('all', 'selected')") |
| 8 |
remove_column :users, :mail_notification_bool |
| 9 |
end
|
| 10 |
|
| 11 |
def self.down |
| 12 |
rename_column :users, :mail_notification, :mail_notification_char |
| 13 |
add_column :users, :mail_notification, :boolean, :default => true, :null => false |
| 14 |
User.update_all("mail_notification = #{connection.quoted_false}", "mail_notification_char <> 'all'") |
| 15 |
remove_column :users, :mail_notification_char |
| 16 |
end
|
| 17 |
end
|