namespace :db do

desc "Generate all the database triggers of the current project"
task :create_triggers => :environment do
  creator = RailsDbTriggers::DbTriggersCreator.new

  triggers_path, triggers_ext = Rails.configuration.rails_db_triggers[:triggers_path], Rails.configuration.rails_db_triggers[:triggers_ext]

  triggers_path.each do |path|
    creator.register_files Dir[File.join(path, triggers_ext)].map{|x| File.expand_path(x)}
  end

  creator.create_triggers
end

desc "Drop all the database triggers of the current project"
task :drop_triggers => :environment do
  creator = RailsDbTriggers::DbTriggersCreator.new

  triggers_path, triggers_ext = Rails.configuration.rails_db_triggers[:triggers_path], Rails.configuration.rails_db_triggers[:triggers_ext]

  triggers_path.each do |path|
    creator.register_files Dir[File.join(path, triggers_ext)].map{|x| File.expand_path(x)}
  end

  creator.drop_triggers
end

end

require ‘rake/hooks’

before “db:migrate” do

Rake::Task['db:drop_triggers'].invoke

end before “db:rollback” do

Rake::Task['db:drop_triggers'].invoke

end

after “db:migrate” do

Rake::Task['db:create_triggers'].invoke

end after “db:rollback” do

Rake::Task['db:create_triggers'].invoke

end