Module: PgSaurus::SchemaDumper::TriggerMethods

Included in:
PgSaurus::SchemaDumper
Defined in:
lib/pg_saurus/schema_dumper/trigger_methods.rb

Overview

Support for dumping database triggers.

Instance Method Summary collapse

Instance Method Details

#dump_triggers(stream) ⇒ Object

Write out a command to create each detected trigger.



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 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) ⇒ Object

:nodoc



5
6
7
8
9
10
11
12
# File 'lib/pg_saurus/schema_dumper/trigger_methods.rb', line 5

def tables(stream)
  super(stream)

  dump_triggers(stream)
  stream.puts

  stream
end