1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Merge pull request #49 from dyba/master

Separated the ActiveRecord Supported Types in a separate section
This commit is contained in:
Daniel Dyba 2011-06-29 23:21:09 -07:00
commit b367f961bb
2 changed files with 28 additions and 12 deletions

View file

@ -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 file

@ -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