module ActiveRecordShards::SchemaDumperExtension
Public Instance Methods
dump(stream)
click to toggle source
Calls superclass method
# File lib/active_record_shards/schema_dumper_extension.rb, line 5 def dump(stream) stream = super(stream) original_connection = @connection if ActiveRecord::Base.supports_sharding? ActiveRecord::Base.on_first_shard do @connection = ActiveRecord::Base.connection shard_header(stream) extensions(stream) tables(stream) shard_trailer(stream) end end stream ensure @connection = original_connection end
shard_header(stream)
click to toggle source
# File lib/active_record_shards/schema_dumper_extension.rb, line 24 def shard_header(stream) define_params = @version ? "version: #{@version}" : "" stream.puts <<~HEADER # This section generated by active_record_shards ActiveRecord::Base.on_all_shards do ActiveRecord::Schema.define(#{define_params}) do HEADER end
shard_trailer(stream)
click to toggle source
# File lib/active_record_shards/schema_dumper_extension.rb, line 38 def shard_trailer(stream) stream.puts "end\nend" end