From cc6c5b858e5d07f7299e1c1450561fdfceefd274 Mon Sep 17 00:00:00 2001 From: Jose Farias Date: Thu, 17 Oct 2024 16:54:47 -0600 Subject: [PATCH] Make filters unique per user+bucket --- .../20241017202003_make_bucket_view_filters_unique.rb | 6 ++++++ db/schema.rb | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 db/migrate/20241017202003_make_bucket_view_filters_unique.rb diff --git a/db/migrate/20241017202003_make_bucket_view_filters_unique.rb b/db/migrate/20241017202003_make_bucket_view_filters_unique.rb new file mode 100644 index 000000000..41e860cf4 --- /dev/null +++ b/db/migrate/20241017202003_make_bucket_view_filters_unique.rb @@ -0,0 +1,6 @@ +class MakeBucketViewFiltersUnique < ActiveRecord::Migration[8.0] + def change + add_index :bucket_views, %i[ bucket_id creator_id filters ], unique: true + remove_index :bucket_views, :bucket_id + end +end diff --git a/db/schema.rb b/db/schema.rb index 8ff1c6132..77284d456 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[8.0].define(version: 2024_10_15_224007) do +ActiveRecord::Schema[8.0].define(version: 2024_10_17_202003) do create_table "accesses", force: :cascade do |t| t.integer "bucket_id", null: false t.integer "user_id", null: false @@ -86,7 +86,7 @@ ActiveRecord::Schema[8.0].define(version: 2024_10_15_224007) do t.json "filters", default: {}, null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false - t.index ["bucket_id"], name: "index_bucket_views_on_bucket_id" + t.index ["bucket_id", "creator_id", "filters"], name: "index_bucket_views_on_bucket_id_and_creator_id_and_filters", unique: true t.index ["creator_id"], name: "index_bucket_views_on_creator_id" end