Add counter caches

This commit is contained in:
rebuilt 2022-06-16 14:06:56 -07:00
parent c03615cb43
commit a6ad132c81
21 changed files with 141 additions and 34 deletions

View file

@ -0,0 +1,5 @@
class AddSurveyItemResponsesCountToSurveyItem < ActiveRecord::Migration[7.0]
def change
add_column :survey_items, :survey_item_responses_count, :integer
end
end

View file

@ -0,0 +1,9 @@
class ResetAllSurveyItemCacheCounters < ActiveRecord::Migration[7.0]
def up
SurveyItem.all.each do |survey_item|
SurveyItem.reset_counters(survey_item.id, :survey_item_responses)
end
end
def down; end
end

View file

@ -0,0 +1,5 @@
class AddSurveyItemsCountToScales < ActiveRecord::Migration[7.0]
def change
add_column :scales, :survey_items_count, :integer
end
end

View file

@ -0,0 +1,9 @@
class ResetAllScaleCacheCounters < ActiveRecord::Migration[7.0]
def up
Scale.all.each do |scale|
Scale.reset_counters(scale.id, :survey_items)
end
end
def down; end
end

View file

@ -0,0 +1,5 @@
class AddScalesCountToMeasures < ActiveRecord::Migration[7.0]
def change
add_column :measures, :scales_count, :integer
end
end

View file

@ -0,0 +1,9 @@
class ResetAllMeasureCacheCounters < ActiveRecord::Migration[7.0]
def up
Measure.all.each do |measure|
Measure.reset_counters(measure.id, :scales)
end
end
def down; end
end

View file

@ -0,0 +1,5 @@
class AddMeasuresCountToSubcategories < ActiveRecord::Migration[7.0]
def change
add_column :subcategories, :measures_count, :integer
end
end

View file

@ -0,0 +1,9 @@
class ResetAllSubcategoryCacheCounters < ActiveRecord::Migration[7.0]
def up
Subcategory.all.each do |subcategory|
Subcategory.reset_counters(subcategory.id, :measures)
end
end
def down; end
end

View file

@ -0,0 +1,5 @@
class AddSubcategoriesCountToCategories < ActiveRecord::Migration[7.0]
def change
add_column :categories, :subcategories_count, :integer
end
end

View file

@ -0,0 +1,9 @@
class ResetAllCategoryCacheCounters < ActiveRecord::Migration[7.0]
def up
Category.all.each do |category|
Category.reset_counters(category.id, :subcategories)
end
end
def down; end
end

View file

@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.0].define(version: 2022_06_14_211616) do
ActiveRecord::Schema[7.0].define(version: 2022_06_16_220352) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@ -57,6 +57,7 @@ ActiveRecord::Schema[7.0].define(version: 2022_06_14_211616) do
t.datetime "updated_at", null: false
t.string "category_id", null: false
t.string "short_description"
t.integer "subcategories_count"
t.index ["slug"], name: "index_categories_on_slug", unique: true
end
@ -283,6 +284,7 @@ ActiveRecord::Schema[7.0].define(version: 2022_06_14_211616) do
t.text "description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "scales_count"
t.index ["measure_id"], name: "index_measures_on_measure_id"
t.index ["subcategory_id"], name: "index_measures_on_subcategory_id"
end
@ -319,6 +321,7 @@ ActiveRecord::Schema[7.0].define(version: 2022_06_14_211616) do
t.bigint "measure_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "survey_items_count"
t.index ["measure_id"], name: "index_scales_on_measure_id"
t.index ["scale_id"], name: "index_scales_on_scale_id", unique: true
end
@ -343,6 +346,7 @@ ActiveRecord::Schema[7.0].define(version: 2022_06_14_211616) do
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "subcategory_id", null: false
t.integer "measures_count"
end
create_table "survey_item_responses", id: :serial, force: :cascade do |t|
@ -371,6 +375,7 @@ ActiveRecord::Schema[7.0].define(version: 2022_06_14_211616) do
t.float "ideal_low_benchmark"
t.bigint "scale_id", null: false
t.boolean "on_short_form", default: false
t.integer "survey_item_responses_count"
t.index ["scale_id"], name: "index_survey_items_on_scale_id"
t.index ["survey_item_id"], name: "index_survey_items_on_survey_item_id"
end