December 27, 2022 By Matthew Rathbone *
On this page

The “rails g migration” command is used to generate a migration, which is a class that is used to make changes to the database.

In particular, the “rails g migration” command can be used to add a new column to an existing database table.

To add a column using the “rails g migration” command, you first need to open a terminal window and navigate to the root directory of your Rails project. From there, you can run the following command:

rails g migration add_column_name_to_table_name column_name:data_type

Replace “column_name” with the name of the column you want to add and “data_type” with the type of data that the column will hold (e.g. string, integer, boolean). “table_name” should be replaced with the name of the table in the database that you want to add the column to.

For example, if you wanted to add a column called “email” to a table called “users” that holds string data, you would run the following command:

rails g migration add_email_to_users email:string

This will generate a migration file with the following code:

class AddEmailToUsers < ActiveRecord::Migration[6.0]
  def change
    add_column :users, :email, :string
  end
end

The “add_column” method is provided by the Rails migration library and is used to add a new column to a table. The first argument is the name of the table, and the second argument is the name of the column. The third argument is the data type of the column.

Once you have generated the migration file, you need to run it using the “rails db:migrate” command. This will execute the code in the migration file and add the new column to the database.

Rails migrations are important because they allow you to easily track and revert changes to the database over time. When you run a migration, Rails will update a special table in the database called the “schema_migrations” table to keep track of which migrations have been run. This ensures that you can roll back changes to the database if necessary.