Skip to Content
Learning Rails
book

Learning Rails

by Simon St. Laurent, Edd Dumbill
November 2008
Beginner
448 pages
12h 25m
English
O'Reilly Media, Inc.
Content preview from Learning Rails

Inside Migrations

The easiest way to familiarize yourself with migrations is (as is often the case with Rails) to examine what Rails puts in them with script/generate. In Chapter 9 we created a students model with:

script/generate scaffold student given_name:string middle_name:string
family_name:string date_of_birth:date grade_point_average:decimal start_date:date

That code generated many files, but the migration it created went into db/20080701211008_create_students.rb and contained the code shown in Example 10-3.

Example 10-3. Code for setting up a table, generated by a scaffolding call

class CreateStudents < ActiveRecord::Migration
  def self.up
    create_table :students do |t|
      t.string :given_name
      t.string :middle_name
      t.string :family_name
      t.date :date_of_birth
      t.decimal :grade_point_average
      t.date :start_date

      t.timestamps
    end
  end

  def self.down
    drop_table :students
  end
end

You can also generate migrations with script/generate migration migration_name or, in Heroku, by going to the gear menu, choosing Generate, and entering migration migration_name. Normally, migrations that create new tables start their names with create, while migrations that add to existing tables start their names with add.

Working with Tables

Most of the activity in the migration generated by the scaffolding, shown in Example 10-1, is in the self.up method. self.down drops the whole students table, which also disposes of any contents it had, so it can skimp on details, just ordering drop_table :students. As you might ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Learning Rails 5

Learning Rails 5

J. Mark Locklear, Eric J Gruber, Barnabas Bulpett

Publisher Resources

ISBN: 9780596154943Errata