class YeetDba::MissingForeignKeys
Public Class Methods
config()
click to toggle source
# File lib/yeet_dba/missing_foreign_keys.rb, line 31 def self.config @config ||= begin config_file = Pathname.new(Rails.root).join('.yeet_dba.yml') if File.exist?(config_file) YAML.load(File.read(config_file)) else {} end end end
eager_load!()
click to toggle source
# File lib/yeet_dba/missing_foreign_keys.rb, line 19 def self.eager_load! Rails.application.eager_load! if defined?(Rails) && !Rails.env.test? end
foreign_keys()
click to toggle source
# File lib/yeet_dba/missing_foreign_keys.rb, line 3 def self.foreign_keys eager_load! tables.map do |table_name| Table.new(table_name: table_name, tables: tables).missing_keys end.flatten end
ignored_tables()
click to toggle source
# File lib/yeet_dba/missing_foreign_keys.rb, line 27 def self.ignored_tables config['exclude_tables'] || [] end
invalid_columns()
click to toggle source
# File lib/yeet_dba/missing_foreign_keys.rb, line 11 def self.invalid_columns eager_load! tables.map do |table_name| Table.new(table_name: table_name, tables: tables).invalid_columns end.flatten end
tables()
click to toggle source
# File lib/yeet_dba/missing_foreign_keys.rb, line 23 def self.tables ActiveRecord::Base.connection.tables - self.ignored_tables end