Skip to content
Browse files

Merge pull request #49 from dyba/master

Separated the ActiveRecord Supported Types in a separate section
  • Loading branch information...
2 parents 7d3a61a + 1028226 commit b367f961bbab12910f55212a614f85693aec424a @dyba dyba committed
Showing with 28 additions and 12 deletions.
  1. +1 −0 Gemfile
  2. +27 −12 railties/guides/source/migrations.textile
View
1 Gemfile
@@ -11,6 +11,7 @@ end
gem "coffee-script"
gem "sass"
gem "uglifier", ">= 1.0.0"
+gem "w3c_validators"
gem "rake", ">= 0.8.7"
gem "mocha", ">= 0.9.8"
View
39 railties/guides/source/migrations.textile
@@ -117,6 +117,33 @@ Occasionally you will make a mistake when writing a migration. If you have alrea
In general editing existing migrations is not a good idea: you will be creating extra work for yourself and your co-workers and cause major headaches if the existing version of the migration has already been run on production machines. Instead you should write a new migration that performs the changes you require. Editing a freshly generated migration that has not yet been committed to source control (or more generally which has not been propagated beyond your development machine) is relatively harmless.
+h4. Supported Types
+
+Active Record supports the following types:
+
+* +:primary_key+
+* +:string+
+* +:text+
+* +:integer+
+* +:float+
+* +:decimal+
+* +:datetime+
+* +:timestamp+
+* +:time+
+* +:date+
+* +:binary+
+* +:boolean+
+
+These will be mapped onto an appropriate underlying database type, for example with MySQL +:string+ is mapped to +VARCHAR(255)+. You can create columns of types not supported by Active Record when using the non-sexy syntax, for example
+
+<ruby>
+create_table :products do |t|
+ t.column :name, 'polygon', :null => false
+end
+</ruby>
+
+This may however hinder portability to other databases.
+
h3. Creating a Migration
h4. Creating a Model
@@ -261,18 +288,6 @@ end
will append +ENGINE=BLACKHOLE+ to the SQL statement used to create the table (when using MySQL the default is +ENGINE=InnoDB+).
-The types supported by Active Record are +:primary_key+, +:string+, +:text+, +:integer+, +:float+, +:decimal+, +:datetime+, +:timestamp+, +:time+, +:date+, +:binary+, +:boolean+.
-
-These will be mapped onto an appropriate underlying database type, for example with MySQL +:string+ is mapped to +VARCHAR(255)+. You can create columns of types not supported by Active Record when using the non-sexy syntax, for example
-
-<ruby>
-create_table :products do |t|
- t.column :name, 'polygon', :null => false
-end
-</ruby>
-
-This may however hinder portability to other databases.
-
h4. Changing Tables
A close cousin of +create_table+ is +change_table+, used for changing existing tables. It is used in a similar fashion to +create_table+ but the object yielded to the block knows more tricks. For example

0 comments on commit b367f96

Please sign in to comment.
Something went wrong with that request. Please try again.