Fix #248 - Reload all accounts when fetching from cache

This commit is contained in:
Eugen Rochko 2016-12-03 18:21:26 +01:00
parent 253970cb73
commit 816284d739
7 changed files with 53 additions and 16 deletions

View file

@ -0,0 +1,14 @@
class AddFromAccountIdToNotifications < ActiveRecord::Migration[5.0]
def up
add_column :notifications, :from_account_id, :integer, null: false, default: 1
Notification.where(activity_type: 'Status').update_all('from_account_id = (SELECT statuses.account_id FROM notifications AS notifications1 INNER JOIN statuses ON notifications1.activity_id = statuses.id WHERE notifications1.activity_type = \'Status\' AND notifications1.id = notifications.id)')
Notification.where(activity_type: 'Mention').update_all('from_account_id = (SELECT statuses.account_id FROM notifications AS notifications1 INNER JOIN mentions ON notifications1.activity_id = mentions.id INNER JOIN statuses ON mentions.status_id = statuses.id WHERE notifications1.activity_type = \'Mention\' AND notifications1.id = notifications.id)')
Notification.where(activity_type: 'Favourite').update_all('from_account_id = (SELECT favourites.account_id FROM notifications AS notifications1 INNER JOIN favourites ON notifications1.activity_id = favourites.id WHERE notifications1.activity_type = \'Favourite\' AND notifications1.id = notifications.id)')
Notification.where(activity_type: 'Follow').update_all('from_account_id = (SELECT follows.account_id FROM notifications AS notifications1 INNER JOIN follows ON notifications1.activity_id = follows.id WHERE notifications1.activity_type = \'Follow\' AND notifications1.id = notifications.id)')
end
def down
remove_column :notifications, :from_account_id
end
end

View file

@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20161202132159) do
ActiveRecord::Schema.define(version: 20161203164520) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@ -100,8 +100,9 @@ ActiveRecord::Schema.define(version: 20161202132159) do
t.integer "account_id"
t.integer "activity_id"
t.string "activity_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "from_account_id", default: 1, null: false
t.index ["account_id", "activity_id", "activity_type"], name: "account_activity", unique: true, using: :btree
end