module PgSaurus::SchemaDumper::TriggerMethods

Support for dumping database triggers.

Public Instance Methods

dump_triggers(stream) click to toggle source

Write out a command to create each detected trigger.

# File lib/pg_saurus/schema_dumper/trigger_methods.rb, line 15
def dump_triggers(stream)
  @connection.triggers.each do |trigger|
    statement = "  create_trigger '#{trigger.table}', '#{trigger.proc_name}', '#{trigger.event}', " \
      "name: '#{trigger.name}', " \
      "constraint: #{trigger.constraint ? :true : :false}, " \
      "for_each: :#{trigger.for_each}, " \
      "deferrable: #{trigger.deferrable ? :true : :false}, " \
      "initially_deferred: #{trigger.initially_deferred ? :true : :false}, " \
      "schema: '#{trigger.schema}'"

    if trigger.condition
      statement << %Q{, condition: '#{trigger.condition.gsub("'", %q(\\\'))}'}
    end

    stream.puts "#{statement}\n"
  end
end
tables(stream) click to toggle source

:nodoc

Calls superclass method
# File lib/pg_saurus/schema_dumper/trigger_methods.rb, line 5
def tables(stream)
  super(stream)

  dump_triggers(stream)
  stream.puts

  stream
end