# Determine The Configured Primary Key Type I noticed an interesting helper function in the database migration generated by `bin/rails active_storage:install`. ```ruby class CreateActiveStorageTables < ActiveRecord::Migration[8.0] def change # Use Active Record's configured type for primary and foreign keys primary_key_type, foreign_key_type = primary_and_foreign_key_types # ... 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 ``` The `primary_and_foreign_key_types` method looks in the generators config for the ORM (`:active_record`) to determine the configured `:primary_key_type`. By default this will return `nil`. This method then uses `:primary_key` as a fallback value which will be `bigint`. That's why the `foreign_key_type` falls back to `:bigint`. If desired, this can be manually configured in `config/application.rb` like shown in the [ActiveRecord Migrations docs](https://guides.rubyonrails.org/active_record_migrations.html#enabling-uuids-in-rails).