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