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

Merge pull request #52 from dyba/651cabc69a6cd661bc33824b995c2242fb65befe

Modified migrations file
This commit is contained in:
Vijay Dev 2011-07-15 11:32:11 -07:00
commit 88e307a0a6

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