From 89e28c76744dc888e7c5f85aef305452681fd6be Mon Sep 17 00:00:00 2001 From: ThibG Date: Sun, 5 Apr 2020 12:51:22 +0200 Subject: Fix PostgreSQL load when linking in announcements (#13250) * Fix PostgreSQL load when linking in announcements Fixes #13245 by caching status lookups Since statuses are supposed to be known already and we only need their URLs and a few other things, caching them should be fine. Since it's only used by announcements so far, there won't be much statuses to cache. * Perform status lookup when saving announcements, not when rendering them * Change EntityCache#status to fetch URLs instead of looking into the database * Move announcement link lookup to publishing worker * Address issues pointed out during review --- db/migrate/20200312162302_add_status_ids_to_announcements.rb | 6 ++++++ db/schema.rb | 1 + 2 files changed, 7 insertions(+) create mode 100644 db/migrate/20200312162302_add_status_ids_to_announcements.rb (limited to 'db') diff --git a/db/migrate/20200312162302_add_status_ids_to_announcements.rb b/db/migrate/20200312162302_add_status_ids_to_announcements.rb new file mode 100644 index 000000000..42aa6513d --- /dev/null +++ b/db/migrate/20200312162302_add_status_ids_to_announcements.rb @@ -0,0 +1,6 @@ +class AddStatusIdsToAnnouncements < ActiveRecord::Migration[5.2] + def change + add_column :announcements, :status_ids, :bigint, array: true + end +end + diff --git a/db/schema.rb b/db/schema.rb index 7f28f2ec4..021ddac89 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -231,6 +231,7 @@ ActiveRecord::Schema.define(version: 2020_03_12_185443) do t.datetime "created_at", null: false t.datetime "updated_at", null: false t.datetime "published_at" + t.bigint "status_ids", array: true end create_table "backups", force: :cascade do |t| -- cgit