Managing Tables
So far we’ve been using migrations to manipulate the columns in existing tables. Now let’s look at creating and dropping tables:
| class CreateOrderHistories < ActiveRecord::Migration |
| def change |
| create_table :order_histories do |t| |
| t.integer :order_id, null: false |
| t.text :notes |
| |
| t.timestamps |
| end |
| end |
| end |
create_table takes the name of a table (remember, table names are plural) and a block. (It also takes some optional parameters that we’ll look at in a minute.) The block is passed a table definition object, which we use to define the columns in the table.
Generally the call to drop_table isn’t needed, as create_table is reversible. drop_table accepts a single parameter, which is ...
Get Agile Web Development with Rails 7 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.