diff options
author | Xavier Noria <fxn@hashref.com> | 2013-08-05 16:36:50 +0200 |
---|---|---|
committer | Xavier Noria <fxn@hashref.com> | 2013-08-05 16:37:08 +0200 |
commit | 3baee0982d25e64cab2eeb046369f0fcf9ee2436 (patch) | |
tree | 5653b0ac9ff853dfec511dccee2c5c8168883d77 | |
parent | 538bd3633bd4dc1a32eabdc71d8d2a3ed7b72812 (diff) | |
download | rails-3baee0982d25e64cab2eeb046369f0fcf9ee2436.tar.gz rails-3baee0982d25e64cab2eeb046369f0fcf9ee2436.tar.bz2 rails-3baee0982d25e64cab2eeb046369f0fcf9ee2436.zip |
migrations guide: fix and edits [ci skip]
-rw-r--r-- | guides/source/migrations.md | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/guides/source/migrations.md b/guides/source/migrations.md index e6d1e71f5e..6100fc89c8 100644 --- a/guides/source/migrations.md +++ b/guides/source/migrations.md @@ -829,8 +829,7 @@ which contains a `Product` model: Bob goes on vacation. Alice creates a migration for the `products` table which adds a new column and -initializes it. She also adds a validation to the `Product` model for the new -column. +initializes it: ```ruby # db/migrate/20100513121110_add_flag_to_product.rb @@ -845,6 +844,8 @@ class AddFlagToProduct < ActiveRecord::Migration end ``` +She also adds a validation to the `Product` model for the new column: + ```ruby # app/models/product.rb @@ -853,9 +854,8 @@ class Product < ActiveRecord::Base end ``` -Alice adds a second migration which adds and initializes another column to the -`products` table and also adds a validation to the `Product` model for the new -column. +Alice adds a second migration which adds another column to the `products` +table and initializes it: ```ruby # db/migrate/20100515121110_add_fuzz_to_product.rb @@ -870,6 +870,8 @@ class AddFuzzToProduct < ActiveRecord::Migration end ``` +She also adds a validation to the `Product` model for the new column: + ```ruby # app/models/product.rb @@ -903,7 +905,7 @@ A fix for this is to create a local model within the migration. This keeps Rails from running the validations, so that the migrations run to completion. When using a local model, it's a good idea to call -`Product.reset_column_information` to refresh the `ActiveRecord` cache for the +`Product.reset_column_information` to refresh the Active Record cache for the `Product` model prior to updating data in the database. If Alice had done this instead, there would have been no problem: @@ -956,7 +958,7 @@ other product attributes. These migrations run just fine, but when Bob comes back from his vacation and calls `rake db:migrate` to run all the outstanding migrations, he gets a subtle bug: The descriptions have defaults, and the `fuzz` column is present, -but `fuzz` is nil on all products. +but `fuzz` is `nil` on all products. The solution is again to use `Product.reset_column_information` before referencing the Product model in a migration, ensuring the Active Record's |