From 0a41007e9dd4aa6d54cfbbb25f8f00489cf3254d Mon Sep 17 00:00:00 2001 From: Max Wofford Date: Wed, 5 Mar 2025 15:42:53 -0500 Subject: [PATCH] Enforce uniqueness on heartbeats --- .../20250305195904_enforce_uniqueness_index_on_heartbeats.rb | 5 +++++ db/schema.rb | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20250305195904_enforce_uniqueness_index_on_heartbeats.rb diff --git a/db/migrate/20250305195904_enforce_uniqueness_index_on_heartbeats.rb b/db/migrate/20250305195904_enforce_uniqueness_index_on_heartbeats.rb new file mode 100644 index 0000000..755b83f --- /dev/null +++ b/db/migrate/20250305195904_enforce_uniqueness_index_on_heartbeats.rb @@ -0,0 +1,5 @@ +class EnforceUniquenessIndexOnHeartbeats < ActiveRecord::Migration[8.0] + def change + add_index :heartbeats, :fields_hash, unique: true, if_not_exists: true + end +end diff --git a/db/schema.rb b/db/schema.rb index ba1fdd6..64c7929 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: 2025_03_05_194250) do +ActiveRecord::Schema[8.0].define(version: 2025_03_05_195904) do # These are extensions that must be enabled in order to support this database enable_extension "pg_catalog.plpgsql" @@ -140,6 +140,7 @@ ActiveRecord::Schema[8.0].define(version: 2025_03_05_194250) do t.datetime "updated_at", null: false t.text "fields_hash" t.integer "source_type", default: 0, null: false + t.index ["fields_hash"], name: "index_heartbeats_on_fields_hash", unique: true t.index ["user_id"], name: "index_heartbeats_on_user_id" end