Some considerations for Ruby on Rails migrations _ruby topics

Source: Internet
Author: User
Tags ruby on rails


Keep the schema.rb under version control.
Use Rake db:scheme:load instead of rake db:migrate to initialize the 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 to replace.

  def amount
   Self[:amount] or 0
  end

However, the use of self[:attr_name] is considered quite common, and you may also consider replacing it with a more verbose (arguably more readable) Read_attribute:

def amount
   Read_attribute (: Amount) or 0
  end

When writing a constructive migration (join a table or field), migrate using the new method of Rails 3.1-replace the up and down method with the change method.


 # The way it used to be
  class Addnametoperson < activerecord::migration
   def up
    add_column:p ersons,: Name,: String
   End

   def down
    remove_column:p erson,: Name
   end

  # New Preferences
  class Addnametoperson < Activerecord::migration
   def change
    add_column:p ersons,: Name,: string
   end
  

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.