module Ridgepole::Ext::SchemaDumper
Public Class Methods
prepended(klass)
click to toggle source
# File lib/ridgepole/ext/schema_dumper.rb, line 8 def self.prepended(klass) klass.extend ClassMethods end
Public Instance Methods
foreign_keys(table, stream)
click to toggle source
Calls superclass method
# File lib/ridgepole/ext/schema_dumper.rb, line 23 def foreign_keys(table, stream) return super unless ActiveRecord::SchemaDumper.__with_default_fk_name if (foreign_keys = @connection.foreign_keys(table)).any? add_foreign_key_statements = foreign_keys.map do |foreign_key| parts = [ "add_foreign_key #{remove_prefix_and_suffix(foreign_key.from_table).inspect}", remove_prefix_and_suffix(foreign_key.to_table).inspect ] parts << "column: #{foreign_key.column.inspect}" if foreign_key.column != foreign_key_column_for(foreign_key) parts << "primary_key: #{foreign_key.primary_key.inspect}" if foreign_key.custom_primary_key? parts << "name: #{foreign_key.name.inspect}" parts << "on_update: #{foreign_key.on_update.inspect}" if foreign_key.on_update parts << "on_delete: #{foreign_key.on_delete.inspect}" if foreign_key.on_delete " #{parts.join(', ')}" end stream.puts add_foreign_key_statements.sort.join("\n") end end
Private Instance Methods
foreign_key_column_for(foreign_key)
click to toggle source
# File lib/ridgepole/ext/schema_dumper.rb, line 51 def foreign_key_column_for(foreign_key) if ActiveRecord.gem_version < Gem::Version.new('7.1.0') @connection.foreign_key_column_for(foreign_key.to_table) else @connection.foreign_key_column_for(foreign_key.to_table, 'id') end end