diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2006-02-25 19:13:04 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2006-02-25 19:13:04 +0000 |
commit | 63f188ceb01fa02487946e21ef623218f5074264 (patch) | |
tree | 5ad5978fce039e52ab694dda7d7689b89e080501 /railties/lib/rails_generator/generators/components | |
parent | ef338e4de4e5a9fa8d1c3b3c93cc59d24c42ec37 (diff) | |
download | rails-63f188ceb01fa02487946e21ef623218f5074264.tar.gz rails-63f188ceb01fa02487946e21ef623218f5074264.tar.bz2 rails-63f188ceb01fa02487946e21ef623218f5074264.zip |
Added that script/generate model will now automatically create a migration file for the model created. This can be turned off by calling the generator with --skip-migration [DHH]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3644 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'railties/lib/rails_generator/generators/components')
3 files changed, 30 insertions, 1 deletions
diff --git a/railties/lib/rails_generator/generators/components/model/USAGE b/railties/lib/rails_generator/generators/components/model/USAGE index 9d5a2fd749..57156ea535 100644 --- a/railties/lib/rails_generator/generators/components/model/USAGE +++ b/railties/lib/rails_generator/generators/components/model/USAGE @@ -5,7 +5,8 @@ Description: given in CamelCase or under_score and should not be suffixed with 'Model'. The generator creates a model class in app/models, a test suite in - test/unit, and test fixtures in test/fixtures/singular_name.yml. + test/unit, test fixtures in test/fixtures/singular_name.yml, and a migration + in db/migrate. Example: ./script/generate model Account @@ -14,4 +15,5 @@ Example: Model: app/models/account.rb Test: test/unit/account_test.rb Fixtures: test/fixtures/accounts.yml + Migration: db/migrate/XXX_add_accounts.rb diff --git a/railties/lib/rails_generator/generators/components/model/model_generator.rb b/railties/lib/rails_generator/generators/components/model/model_generator.rb index a978b96b1c..5e9aa882f3 100644 --- a/railties/lib/rails_generator/generators/components/model/model_generator.rb +++ b/railties/lib/rails_generator/generators/components/model/model_generator.rb @@ -1,4 +1,6 @@ class ModelGenerator < Rails::Generator::NamedBase + default_options :skip_migration => false + def manifest record do |m| # Check for class naming collisions. @@ -13,6 +15,20 @@ class ModelGenerator < Rails::Generator::NamedBase m.template 'model.rb', File.join('app/models', class_path, "#{file_name}.rb") m.template 'unit_test.rb', File.join('test/unit', class_path, "#{file_name}_test.rb") m.template 'fixtures.yml', File.join('test/fixtures', class_path, "#{table_name}.yml") + + unless options[:skip_migration] + m.migration_template 'migration.rb', 'db/migrate', :assigns => { + :migration_name => "Add#{class_name.pluralize}" + } + end end end + + protected + def add_options!(opt) + opt.separator '' + opt.separator 'Options:' + opt.on("--skip-migration", + "Don't generate a migration file for this model") { |options[:skip_migration]| } + end end diff --git a/railties/lib/rails_generator/generators/components/model/templates/migration.rb b/railties/lib/rails_generator/generators/components/model/templates/migration.rb new file mode 100644 index 0000000000..023c07d2f6 --- /dev/null +++ b/railties/lib/rails_generator/generators/components/model/templates/migration.rb @@ -0,0 +1,11 @@ +class <%= migration_name %> < ActiveRecord::Migration + def self.up + create_table "<%= table_name %>" do |t| + # t.column "name", :string + end + end + + def self.down + drop_table "<%= table_name %>" + end +end |