namespace :db do
keys = Multibase::Railtie.connection_keys keys.each do |key| namespace key.to_sym do namespace :create do task :all do Multibase.exec(key) { Rake::Task['db:create:all'].execute } end end task :create do Multibase.exec(key) { Rake::Task['db:create'].execute } end task drop: ['db:load_config'] do Multibase.exec(key) { Rake::Task['db:drop'].execute } end namespace :drop do task :all do Multibase.exec(key) { Rake::Task['db:drop:all'].execute } end end task :purge do Multibase.exec(key) { Rake::Task['db:purge'].execute } end namespace :purge do task :all do Multibase.exec(key) { Rake::Task['db:purge:all'].execute } end end task :migrate do Multibase.exec(key) { Rake::Task['db:migrate'].execute } end namespace :migrate do task :all do Multibase.exec(key) { Rake::Task['db:migrate:all'].execute } end end task :setup do Multibase.exec(key) { Rake::Task['db:setup'].execute } end task :seed do Multibase.exec(key) { Rake::Task['db:seed'].execute } end namespace :migrate do task redo: ['db:load_config'] do Multibase.exec(key) { Rake::Task['db:migrate:redo'].execute } end task up: ['db:load_config'] do Multibase.exec(key) { Rake::Task['db:migrate:up'].execute } end task down: ['db:load_config'] do Multibase.exec(key) { Rake::Task['db:migrate:down'].execute } end task status: ['db:load_config'] do Multibase.exec(key) { Rake::Task['db:migrate:status'].execute } end end task rollback: ['db:load_config'] do Multibase.exec(key) { Rake::Task['db:rollback'].execute } end task forward: ['db:load_config'] do Multibase.exec(key) { Rake::Task['db:forward'].execute } end task :abort_if_pending_migrations do Multibase.exec(key) { Rake::Task['db:abort_if_pending_migrations'].execute } end task version: ['db:load_config'] do Multibase.exec(key) { Rake::Task['db:version'].execute } end namespace :schema do task :load do Multibase.exec(key) { Rake::Task['db:schema:load'].execute } end task :dump do Multibase.exec(key) { Rake::Task['db:schema:dump'].execute } end namespace :cache do task :dump do Multibase.exec(key) { Rake::Task['db:schema:cache:dump'].execute } end end end namespace :structure do task :load do Multibase.exec(key) { Rake::Task['db:structure:load'].execute } end end namespace :test do task :purge do Multibase.exec(key) { Rake::Task['db:test:purge'].execute } end task :load_schema do Multibase.exec(key) { Rake::Task['db:test:load_schema'].execute } end task :load_structure do Multibase.exec(key) { Rake::Task['db:test:load_structure'].execute } end task :prepare do Multibase.exec(key) { Rake::Task['db:test:prepare'].execute } end end end end
end
%w(
create:all create drop:all drop purge:all purge migrate migrate:status abort_if_pending_migrations schema:dump schema:load schema:cache:dump structure:load setup seed test:purge test:load_schema test:load_structure test:prepare
).each do |name|
task = Rake::Task["db:#{name}"] next unless task task.enhance do Rake::Task['db:load_config'].invoke Multibase::Railtie.connection_keys.each do |connection| Rake::Task["db:#{connection}:#{name}"].invoke end end
end