The schema.rb file shows the current structure of your database in a simple Ruby format. It helps you see and share how your database tables and columns look without needing to check the database directly.
0
0
Schema.rb understanding in Ruby on Rails
Introduction
When you want to understand what tables and columns exist in your Rails app database.
When you need to share the database structure with other developers without giving direct database access.
When you want to reset or recreate the database schema quickly during development or testing.
When you want to track changes in your database structure using version control.
When you want to check if migrations have been applied correctly by comparing with <code>schema.rb</code>.
Syntax
Ruby on Rails
# Example snippet from schema.rb ActiveRecord::Schema.define(version: 20240601000000) do create_table "users", force: :cascade do |t| t.string "name" t.string "email" t.datetime "created_at", null: false t.datetime "updated_at", null: false end end
The file uses Ruby code to describe tables and columns.
The version shows the latest migration timestamp applied.
Examples
This creates a
products table with columns for title, price, stock, and automatic timestamps.Ruby on Rails
create_table "products", force: :cascade do |t| t.string "title" t.decimal "price", precision: 8, scale: 2 t.integer "stock" t.timestamps end
This adds a unique index on the
email column in the users table to speed up lookups and ensure emails are unique.Ruby on Rails
add_index "users", ["email"], name: "index_users_on_email", unique: true
Sample Program
This schema.rb defines a books table with columns for title, author, pages, and timestamps. It shows the current database structure in Ruby code.
Ruby on Rails
# This is a simplified schema.rb example ActiveRecord::Schema.define(version: 20240601000000) do create_table "books", force: :cascade do |t| t.string "title" t.string "author" t.integer "pages" t.datetime "created_at", null: false t.datetime "updated_at", null: false end end
OutputSuccess
Important Notes
Do not edit schema.rb manually; it is generated by running migrations.
Use rails db:migrate to update the database and schema.rb together.
schema.rb helps keep your database structure consistent across different environments.
Summary
schema.rb shows your database tables and columns in Ruby code.
It is automatically updated when you run migrations.
It helps share and recreate the database structure easily.