diff --git a/db/migrate/20231215190233_create_noticed_tables.rb b/db/migrate/20231215190233_create_noticed_tables.rb index 7252e76..2ce8d28 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