ForeignKeyChecker

This gem checks belongs_to ActiveRecord relations. It finds

  1. Nonpolymorphic relations without a foreign_key
  2. records without a record in related table (example: city_id is 1000, but there is not city with id 1000)
  3. broken relations: if you try to join such relation (example: City.joins(:country)), there is an exception.

Usage

Generate migration to fix foreign key problems

bundle exec rails generate foreign_key_checker:migration

Print information about foreign key problems

bundle exec rake foreign_key_check

Or use it inside your application

ForeignKeyChecker.check.each do |key, result|
  ...
end

Installation

Add this line to your application's Gemfile:

gem 'foreign_key_checker'

And then execute:

$ bundle

Or install it yourself as:

$ gem install foreign_key_checker

License

The gem is available as open source under the terms of the MIT License.