class MultipleDbsModelGenerator

Public Instance Methods

create_migration_file() click to toggle source
# File lib/generators/multiple_dbs_model/multiple_dbs_model_generator.rb, line 9
def create_migration_file
  if MultipleDbs and MultipleDbs::DBS
    return unless options[:migration] && options[:parent].nil?
    attributes.each { |a| a.attr_options.delete(:index) if a.reference? && !a.has_index? } if options[:indexes] == false
    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/templates/create_table_migration.rb", "db/#{branch}/migrate/#{table_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