Notes for Ruby on Rails migration: rubyonrails migration
Save schema. rb under version control.
Use rake db: scheme: load to replace rake db: migrate to initialize an empty database.
Use rake db: test: prepare to update the schema of the test database.
Avoid setting default data in the table. Use the model layer instead.
def amount self[:amount] or 0 end
However, the use of self [: attr_name] is considered quite common. You can also consider using read_attribute, which is more wordy (more controversial and readable) to replace it:
def amount read_attribute(:amount) or 0 end
When writing a constructive migration (adding tables or columns), use the new method of Rails 3.1 for migration-replace the up and down methods with the change method.
# Previous methods: class AddNameToPerson <ActiveRecord: Migration def up add_column: persons,: name,: string end def down remove_column: person ,: name end # New preference class AddNameToPerson <ActiveRecord: Migration def change add_column: persons,: name,: string end