class MigrationGeneratorCore
you should set DB_PROJECT_ROOT
constant to some path before including this file
Constants
- DB_PROJECT_ROOT
Public Instance Methods
calculate_migration(predefined_migration_name=nil)
click to toggle source
# File lib/data_plan/generators/migration/migration_generator_core.rb, line 12 def calculate_migration(predefined_migration_name=nil) require File.join( File.expand_path(File.dirname(__FILE__)),'lib','auto_migrations.rb') require File.join( File.expand_path(File.dirname(__FILE__)),'lib','sexy_statements_hook.rb') ActiveRecord::Migration.send :include, SexyStatementsHook ActiveRecord::Migration.send :include, AutoMigrations AutoMigrations.run print "Migration generated. Self.up is:\n" + ActiveRecord::Migration.sexy_up migration_name = predefined_migration_name if migration_name.blank? name = ActiveRecord::Migration.desired_migration_name name = migration_default_name if name.blank? migration_name = input("\nEnter filename [#{name}]:").strip.gsub(' ', '_') migration_name = name if migration_name.blank? end up = ActiveRecord::Migration.sexy_up + " " down = ActiveRecord::Migration.sexy_down hints = <<HINT # Hints on migrations syntax. # # add_column(table_name, column_name, type, options = {}) # Types are: :primary_key, :string, :text, :integer, :float, :datetime, :timestamp, :time, :date, :binary, :boolean. # # Other stuff: # change_column(table_name, column_name, type, options = {}) - options as in add_column # change_column_default(table_name, column_name, default) # remove_column(table_name, column_name) # rename_column(table_name, column_name, new_column_name) # # Sample: Don't add a primary key column # create_table(:categories_suppliers, :id => false) do |t| # t.column :category_id, :integer # t.column :supplier_id, :integer # end # # Sample: reload columns for a model from DB # Person.reset_column_information # # More samples here: http://guides.rubyonrails.org/migrations.html HINT #return { :up => up, :down => down, :hints => hints, :migration_name => migration_name.camelize, :migration_file_name => migration_name } return up,down,hints,migration_name end
input(prompt, options=nil)
click to toggle source
# File lib/data_plan/generators/migration/migration_generator_core.rb, line 64 def input(prompt, options=nil) print(prompt + " ") if options while !(response = STDIN.readline.strip.downcase).in?(options); print(prompt + " ") end response else STDIN.readline end end
migration_default_name()
click to toggle source
# File lib/data_plan/generators/migration/migration_generator_core.rb, line 7 def migration_default_name i = Dir["#{DB_PROJECT_ROOT}/db/migrate/*definition_migration*"].length "definition_migration_#{i+1}" end