From d7ed992122d861deb3428af4fe544c7fc4a54ce1 Mon Sep 17 00:00:00 2001 From: Ryan Romanchuk Date: Wed, 14 Feb 2024 11:31:30 -0600 Subject: [PATCH] Honor PK settings (#402) * Honor PK settings * Lint fixes --- .../20231215190233_create_noticed_tables.rb | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/db/migrate/20231215190233_create_noticed_tables.rb b/db/migrate/20231215190233_create_noticed_tables.rb index 7252e766..2ce8d288 100644 --- a/db/migrate/20231215190233_create_noticed_tables.rb +++ b/db/migrate/20231215190233_create_noticed_tables.rb @@ -1,8 +1,9 @@ class CreateNoticedTables < ActiveRecord::Migration[6.1] def change - create_table :noticed_events do |t| + primary_key_type, foreign_key_type = primary_and_foreign_key_types + create_table :noticed_events, id: primary_key_type do |t| t.string :type - t.belongs_to :record, polymorphic: true + t.belongs_to :record, polymorphic: true, type: foreign_key_type if t.respond_to?(:jsonb) t.jsonb :params else @@ -12,14 +13,24 @@ def change t.timestamps end - create_table :noticed_notifications do |t| + create_table :noticed_notifications, id: primary_key_type do |t| t.string :type - t.belongs_to :event, null: false - t.belongs_to :recipient, polymorphic: true, null: false + t.belongs_to :event, null: false, type: foreign_key_type + t.belongs_to :recipient, polymorphic: true, null: false, type: foreign_key_type t.datetime :read_at t.datetime :seen_at t.timestamps end end + + private + + def primary_and_foreign_key_types + config = Rails.configuration.generators + setting = config.options[config.orm][:primary_key_type] + primary_key_type = setting || :primary_key + foreign_key_type = setting || :bigint + [primary_key_type, foreign_key_type] + end end