Class: PgSqlTriggers::Engine

Inherits:
Rails::Engine
  • Object
show all
Defined in:
lib/pg_sql_triggers/engine.rb

Class Method Summary collapse

Class Method Details

.install_schema_load_trigger_hookObject



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/pg_sql_triggers/engine.rb', line 56

def self.install_schema_load_trigger_hook
  return if @schema_load_trigger_hook_installed
  return unless PgSqlTriggers.migrate_triggers_after_schema_load
  return if ENV["SKIP_TRIGGER_MIGRATE_AFTER_SCHEMA_LOAD"].present?
  return unless defined?(Rake::Task)

  if defined?(Rails.application) && Rails.application.respond_to?(:load_tasks)
    Rails.application.load_tasks
  end

  return unless Rake::Task.task_defined?("db:schema:load")

  @schema_load_trigger_hook_installed = true

  Rake::Task["db:schema:load"].enhance do
    next unless PgSqlTriggers.migrate_triggers_after_schema_load
    next if ENV["SKIP_TRIGGER_MIGRATE_AFTER_SCHEMA_LOAD"].present?

    Rake::Task["trigger:migrate"].invoke
  end
end