Sha256: a5aea607e1dc7201ffdc070fb0ed44f6d371a76362a1efff353e81fad982ca4e
Contents?: true
Size: 1.99 KB
Versions: 3
Compression:
Stored size: 1.99 KB
Contents
module RedHillConsulting::Core::ActiveRecord module SchemaDumper def self.included(base) base.class_eval do private alias_method_chain :tables, :redhillonrails_core alias_method_chain :indexes, :redhillonrails_core end end private def tables_with_redhillonrails_core(stream) @foreign_keys = StringIO.new begin tables_without_redhillonrails_core(stream) @foreign_keys.rewind stream.print @foreign_keys.read views(stream) ensure @foreign_keys = nil end end def indexes_with_redhillonrails_core(table, stream) indexes = @connection.indexes(table) indexes.each do |index| if index.expression.blank? then stream.print " add_index #{index.table.inspect}, #{index.columns.inspect}, :name => #{index.name.inspect}" stream.print ", :unique => true" if index.unique stream.print ", :case_sensitive => false" unless index.case_sensitive? stream.print ", :conditions => #{index.conditions.inspect}" unless index.conditions.blank? else stream.print " add_index #{index.table.inspect}" stream.print ", :expression => #{index.expression.inspect}" stream.print ", :name => #{index.name.inspect}" end stream.puts end stream.puts unless indexes.empty? foreign_keys(table, @foreign_keys) end def foreign_keys(table, stream) foreign_keys = @connection.foreign_keys(table) foreign_keys.each do |foreign_key| stream.print " " stream.print foreign_key.to_dump stream.puts end stream.puts unless foreign_keys.empty? end def views(stream) views = @connection.views views.each do |view_name| definition = @connection.view_definition(view_name) stream.print " create_view #{view_name.inspect}, #{definition.inspect}" stream.puts end stream.puts unless views.empty? end end end
Version data entries
3 entries across 3 versions & 1 rubygems