namespace :active_record do
namespace :sharding do desc "Show all defined clusters and their detail" task info: %i(environment) do ActiveRecord::Sharding::DatabaseTasks.info end desc "Setup all databases in all clusters" task setup: %i(create_all load_schema_all) do end desc "Create all databases in all clusters" task :create_all => :environment do ActiveRecord::Sharding::DatabaseTasks.invoke_task_for_all_clusters("create") end desc "Drop all databases in all clusters" task :drop_all => :environment do ActiveRecord::Sharding::DatabaseTasks.invoke_task_for_all_clusters("drop") end desc "Load schema to all databases in all clusters" task :load_schema_all => :environment do ActiveRecord::Sharding::DatabaseTasks.invoke_task_for_all_clusters("load_schema") end desc "Create all databases in specific cluster" task :create, %i(cluster_name) => %i(environment) do |_, args| ActiveRecord::Sharding::DatabaseTasks.create_all_databases(args) end desc "Drop all databases in specific cluster" task :drop, %i(cluster_name) => %i(environment) do |_, args| ActiveRecord::Sharding::DatabaseTasks.drop_all_databases(args) end desc "Load schema to all databases in specific cluster" task :load_schema, %i(cluster_name) => %i(environment) do |_, args| ActiveRecord::Sharding::DatabaseTasks.load_schema_all_databases(args) end namespace :sequencer do desc "Create database in specific sequencer" task :create, %i(sequencer_name) => %i(environment) do |_, args| ActiveRecord::Sharding::DatabaseTasks.create_sequencer_database(args) end desc "Drop database in specific sequencer" task :drop, %i(sequencer_name) => %i(environment) do |_, args| ActiveRecord::Sharding::DatabaseTasks.drop_sequencer_database(args) end desc "Create sequencer table in specific sequencer database" task :create_table, %i(sequencer_name) => %i(environment) do |_, args| ActiveRecord::Sharding::DatabaseTasks.create_table_sequencer_database(args) end desc "Insert initial record in specific sequencer database" task :insert_initial_record, %i(sequencer_name) => %i(environment) do |_, args| ActiveRecord::Sharding::DatabaseTasks.insert_initial_record_sequencer_database(args) end desc "Setup all databases in sequencers" task setup: %i(create_all create_table_all insert_initial_record_all) do end desc "Create all databases in all sequencers" task :create_all => :environment do ActiveRecord::Sharding::DatabaseTasks.invoke_task_for_all_sequencers("create") end desc "Create table in all sequencers databases" task :create_table_all => :environment do ActiveRecord::Sharding::DatabaseTasks.invoke_task_for_all_sequencers("create_table") end desc "Insert inital record in all sequencers tables" task :insert_initial_record_all => :environment do ActiveRecord::Sharding::DatabaseTasks.invoke_task_for_all_sequencers("insert_initial_record") end desc "Drop all databases in all sequencers" task :drop_all => :environment do ActiveRecord::Sharding::DatabaseTasks.invoke_task_for_all_sequencers("drop") end end end
end