##// END OF EJS Templates
Fixed: Migration from boolean to varchar fails on PostgreSQL 8.1 (#6943)....
Jean-Philippe Lang -
r4299:427ec05c8b79
parent child
Show More
@@ -1,9 +1,17
1 class ChangeUsersMailNotificationToString < ActiveRecord::Migration
1 class ChangeUsersMailNotificationToString < ActiveRecord::Migration
2 def self.up
2 def self.up
3 change_column :users, :mail_notification, :string, :default => '', :null => false
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
4 end
9 end
5
10
6 def self.down
11 def self.down
7 change_column :users, :mail_notification, :boolean, :default => true, :null => false
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
8 end
16 end
9 end
17 end
@@ -1,9 +1,8
1 # Patch the data from a boolean change.
1 # Patch the data from a boolean change.
2 class UpdateMailNotificationValues < ActiveRecord::Migration
2 class UpdateMailNotificationValues < ActiveRecord::Migration
3 def self.up
3 def self.up
4 User.update_all("mail_notification = 'all'", "mail_notification IN ('1', 't')")
4 # No-op
5 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)")
5 # See 20100129193402_change_users_mail_notification_to_string.rb
6 User.update_all("mail_notification = 'only_my_events'", "mail_notification NOT IN ('all', 'selected')")
7 end
6 end
8
7
9 def self.down
8 def self.down
General Comments 0
You need to be logged in to leave comments. Login now