aboutsummaryrefslogtreecommitdiffstats
path: root/guides/source/migrations.md
diff options
context:
space:
mode:
Diffstat (limited to 'guides/source/migrations.md')
-rw-r--r--guides/source/migrations.md25
1 files changed, 23 insertions, 2 deletions
diff --git a/guides/source/migrations.md b/guides/source/migrations.md
index 62b70b5571..617e01bd15 100644
--- a/guides/source/migrations.md
+++ b/guides/source/migrations.md
@@ -79,7 +79,7 @@ end
Alternatively, you can use `up` and `down` instead of `change`:
-``ruby
+```ruby
class ChangeProductsPrice < ActiveRecord::Migration
def up
change_table :products do |t|
@@ -108,7 +108,9 @@ of the migration. The name of the migration class (CamelCased version)
should match the latter part of the file name. For example
`20080906120000_create_products.rb` should define class `CreateProducts` and
`20080906120001_add_details_to_products.rb` should define
-`AddDetailsToProducts`.
+`AddDetailsToProducts`. Rails uses this timestamp to determine which migration
+should be run and in what order, so if you're copying a migration from another
+application or generate a file yourself, be aware of its position in the order.
Of course, calculating timestamps is no fun, so Active Record provides a
generator to handle making it for you:
@@ -200,6 +202,25 @@ end
This migration will create a `user_id` column and appropriate index.
+There is also a generator which will produce join tables if `JoinTable` is part of the name:
+
+```bash
+rails g migration CreateJoinTableCustomerProduct customer product
+```
+
+will produce the following migration:
+
+```ruby
+class CreateJoinTableCustomerProduct < ActiveRecord::Migration
+ def change
+ create_join_table :customers, :products do |t|
+ # t.index [:customer_id, :product_id]
+ # t.index [:product_id, :customer_id]
+ end
+ end
+end
+```
+
### Model Generators
The model and scaffold generators will create migrations appropriate for adding