FIX: Notification counters were being updated incorrectly.

This commit is contained in:
Robin Ward 2013-08-09 12:12:56 -04:00
parent 4d8585ac10
commit 6452962f36
2 changed files with 16 additions and 1 deletions

View File

@ -220,7 +220,8 @@ class User < ActiveRecord::Base
end end
def saw_notification_id(notification_id) def saw_notification_id(notification_id)
User.where(["seen_notification_id < ?", notification_id]).update_all ["seen_notification_id = ?", notification_id] User.where(["id = ? and seen_notification_id < ?", id, notification_id])
.update_all ["seen_notification_id = ?", notification_id]
end end
def publish_notifications_state def publish_notifications_state

View File

@ -0,0 +1,14 @@
class FixSeenNotificationIds < ActiveRecord::Migration
def up
# There was an error where `seen_notification_id` was being updated incorrectly.
# This tries to fix some of the bad data.
execute "UPDATE users SET
seen_notification_id = COALESCE((SELECT MAX(notifications.id)
FROM notifications
WHERE user_id = users.id AND created_at <= users.last_seen_at), 0)"
end
def down
end
end