Other Pages

Creating A Migration

Goals

    Topics
    id
    title
    description

    The app has a list of topics that people can vote on. We'll store our topics in the database. In this step you'll do the following:

  • Create a simple Table in the database for topics with a title and a description

  • Automatically generate the corresponding Scaffold in Rails (namely, the Model, the View, and the Controller).

Steps

Step 1

Type this in the terminal:
rails generate scaffold topic title:string description:text
  • generate scaffold tells Rails to create everything necessary to get up and running with topics.
  • topic tells Rails the name of the new model.
  • title:string says that topics have a title, which is a "string".
  • description:text says that topics have a description which is a "text". (What's the difference between "string" and "text"? Basically "text" is for strings that might be very long.)

Step 2

Type this in the terminal:
rails db:migrate

This tells Rails to update the database to include a table for our new model.

Explanation

Here, rails db:migrate is a command provided by the Rails framework. It uses the migration file we just created (db/migrate/201xxxxxxxxxxx_create_topics.rb) to change the database. Database migration files can be crucial to code collaboration.

You can run rails --help to see a list of all the rails commands your app currently responds to, along with a short description of each one.

Next Step: