From dd0f491bebe9c3c28457c18bcd7de3377d5364d3 Mon Sep 17 00:00:00 2001 From: Nat Dean-Lewis <94526761+natdeanlewissoftwire@users.noreply.github.com> Date: Mon, 2 Mar 2026 16:40:53 +0000 Subject: [PATCH] CLDC-4226: Index logs by org and ID (#3199) * CLDC-4226: index logs by org and id * CLDC-4226: include teamwide non-functional schema change * CLDC-4226: schema update --- ...te_indexes_for_logs_organisation_lookup.rb | 25 +++++++++++++++++++ db/schema.rb | 6 ++++- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20260225135309_add_composite_indexes_for_logs_organisation_lookup.rb diff --git a/db/migrate/20260225135309_add_composite_indexes_for_logs_organisation_lookup.rb b/db/migrate/20260225135309_add_composite_indexes_for_logs_organisation_lookup.rb new file mode 100644 index 000000000..9be96b015 --- /dev/null +++ b/db/migrate/20260225135309_add_composite_indexes_for_logs_organisation_lookup.rb @@ -0,0 +1,25 @@ +class AddCompositeIndexesForLogsOrganisationLookup < ActiveRecord::Migration[7.2] + disable_ddl_transaction! + + def change + add_index :lettings_logs, %i[owning_organisation_id id], + order: { id: :desc }, + name: "index_lettings_logs_on_owning_org_and_id_desc", + algorithm: :concurrently + + add_index :lettings_logs, %i[managing_organisation_id id], + order: { id: :desc }, + name: "index_lettings_logs_on_managing_org_and_id_desc", + algorithm: :concurrently + + add_index :sales_logs, %i[owning_organisation_id id], + order: { id: :desc }, + name: "index_sales_logs_on_owning_org_and_id_desc", + algorithm: :concurrently + + add_index :sales_logs, %i[managing_organisation_id id], + order: { id: :desc }, + name: "index_sales_logs_on_managing_org_and_id_desc", + algorithm: :concurrently + end +end diff --git a/db/schema.rb b/db/schema.rb index c5ac9a344..dfde8e765 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.2].define(version: 2026_02_19_093257) do +ActiveRecord::Schema[7.2].define(version: 2026_02_25_162121) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -408,8 +408,10 @@ ActiveRecord::Schema[7.2].define(version: 2026_02_19_093257) do t.index ["bulk_upload_id"], name: "index_lettings_logs_on_bulk_upload_id" t.index ["created_by_id"], name: "index_lettings_logs_on_created_by_id" t.index ["location_id"], name: "index_lettings_logs_on_location_id" + t.index ["managing_organisation_id", "id"], name: "index_lettings_logs_on_managing_org_and_id_desc", order: { id: :desc } t.index ["managing_organisation_id"], name: "index_lettings_logs_on_managing_organisation_id" t.index ["old_id"], name: "index_lettings_logs_on_old_id", unique: true + t.index ["owning_organisation_id", "id"], name: "index_lettings_logs_on_owning_org_and_id_desc", order: { id: :desc } t.index ["owning_organisation_id"], name: "index_lettings_logs_on_owning_organisation_id" t.index ["scheme_id"], name: "index_lettings_logs_on_scheme_id" t.index ["updated_by_id"], name: "index_lettings_logs_on_updated_by_id" @@ -826,8 +828,10 @@ ActiveRecord::Schema[7.2].define(version: 2026_02_19_093257) do t.index ["assigned_to_id"], name: "index_sales_logs_on_assigned_to_id" t.index ["bulk_upload_id"], name: "index_sales_logs_on_bulk_upload_id" t.index ["created_by_id"], name: "index_sales_logs_on_created_by_id" + t.index ["managing_organisation_id", "id"], name: "index_sales_logs_on_managing_org_and_id_desc", order: { id: :desc } t.index ["managing_organisation_id"], name: "index_sales_logs_on_managing_organisation_id" t.index ["old_id"], name: "index_sales_logs_on_old_id", unique: true + t.index ["owning_organisation_id", "id"], name: "index_sales_logs_on_owning_org_and_id_desc", order: { id: :desc } t.index ["owning_organisation_id"], name: "index_sales_logs_on_owning_organisation_id" t.index ["updated_by_id"], name: "index_sales_logs_on_updated_by_id" end