namespace :db do
desc 'Generate all the database objects of the current project' task create_objects: :environment do creator = RailsDbObjects::DbObjectsCreator.new objects_path = Rails.configuration.rails_db_objects[:objects_path] objects_ext = Rails.configuration.rails_db_objects[:objects_ext] objects_path.each do |path| creator.register_files(Dir[File.join(path, objects_ext)].map { |x| File.expand_path(x) }) end creator.create_objects end desc 'Drop all the database objects of the current project' task drop_objects: :environment do creator = RailsDbObjects::DbObjectsCreator.new objects_path = Rails.configuration.rails_db_objects[:objects_path] objects_ext = Rails.configuration.rails_db_objects[:objects_ext] objects_path.each do |path| creator.register_files(Dir[File.join(path, objects_ext)].map { |x| File.expand_path(x) }) end creator.drop_objects end
end
require 'rake/hooks'
before 'db:migrate' do
Rake::Task['db:drop_objects'].invoke
end before 'db:rollback' do
Rake::Task['db:drop_objects'].invoke
end
after 'db:migrate' do
Rake::Task['db:create_objects'].invoke
end after 'db:rollback' do
Rake::Task['db:create_objects'].invoke
end