68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
# File 'lib/schema_plus/foreign_keys/middleware/dumper.rb', line 68
def after(env)
dumped = {}
env.table.columns.each do |column|
if (foreign_key = env.dump.data.inline_fks[env.table.name].find { |it| it.column.to_s == column.name })
column.options[:foreign_key] = {references: foreign_key.to_table}.merge foreign_key.options_for_dump
dumped[foreign_key] = true
end
if (foreign_key = env.dump.data.backref_fks.values.flatten.find{|fk| fk.from_table.to_s == env.table.name && fk.column.to_s == column.name})
column. << "foreign key references #{foreign_key.to_table.inspect} (below)"
end
end
env.table.trailer += env.dump.data.inline_fks[env.table.name].map { |foreign_key|
foreign_key.to_dump unless dumped[foreign_key] }.compact.sort
env.table.trailer += env.dump.data.backref_fks[env.table.name].map { |foreign_key|
foreign_key.to_dump
}.sort
end
|