Class: MultipleDbsMigrationGenerator

Inherits:
ActiveRecord::Generators::MigrationGenerator
  • Object
show all
Defined in:
lib/generators/multiple_dbs_migration/multiple_dbs_migration_generator.rb

Instance Method Summary collapse

Instance Method Details

#create_migration_fileObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/generators/multiple_dbs_migration/multiple_dbs_migration_generator.rb', line 9

def create_migration_file
  if MultipleDbs and MultipleDbs::DBS
    set_local_assigns!
    validate_file_name!
    only_arr = options[:only].map{|o| o.to_sym }.delete_if{ |o| !MultipleDbs::DBS.include?(o)} if options[:only] and options[:only].any?
    skip_arr = options[:skip].map{|s| s.to_sym }.delete_if{ |s| !MultipleDbs::DBS.include?(s)} if options[:skip] and options[:skip].any?
    databases_list = (MultipleDbs::DBS & only_arr) if only_arr and only_arr.any?
    databases_list = databases_list - skip_arr if skip_arr and skip_arr.any?
    databases_list ||= MultipleDbs::DBS
    databases_list.each do |branch|
      migration_template @migration_template, "db/#{branch}/migrate/#{file_name}.rb"
    end if databases_list.any?
  else
    puts "The multiple_dbs constant is not defined. The multiple_dbs generator must be runned first. Type in your console: rails g multiple_dbs --help"
  end
end