Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- task spec: ['stats:db:test:prepare']
- namespace :stats do
- namespace :db do |ns|
- %i(drop create setup migrate rollback seed version).each do |task_name|
- task task_name do
- Rake::Task["db:#{task_name}"].invoke
- end
- end
- namespace :schema do
- %i(load dump).each do |task_name|
- task task_name do
- Rake::Task["db:schema:#{task_name}"].invoke
- end
- end
- end
- namespace :test do
- task :prepare do
- Rake::Task['db:test:prepare'].invoke
- end
- end
- # append and prepend proper tasks to all the tasks defined here above
- ns.tasks.each do |task|
- task.enhance ['stats:set_custom_config'] do
- Rake::Task['stats:revert_to_original_config'].invoke
- end
- end
- end
- task :set_custom_config do
- # save current vars
- @original_config = {
- env_schema: ENV['SCHEMA'],
- config: Rails.application.config.dup
- }
- # set config variables for custom database
- ENV['SCHEMA'] = 'db_stats/schema.rb'
- Rails.application.config.paths['db'] = ['db_stats']
- Rails.application.config.paths['db/migrate'] = ['db_stats/migrate']
- Rails.application.config.paths['db/seeds'] = ['db_stats/seeds.rb']
- Rails.application.config.paths['config/database'] = ['config/database_stats.yml']
- end
- task :revert_to_original_config do
- # reset config variables to original values
- ENV['SCHEMA'] = @original_config[:env_schema]
- Rails.application.config = @original_config[:config]
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement