Categories
Programming Rails

Rails 的 Migrations

Migrations 讓你用 Ruby 語法來定義資料庫結構。這有什麼好處? 這可以讓資料庫結構也可以像 code 一樣做版本控制,多人開發時可以更容易更新資料庫版本,產品更容易升級,不同資料庫也更容易做同步。這些都只要打 rake migrate 就可以完成。

參考資料 :

簡易範例 :

1.新建 Migration

ruby script/generate migration add_a_new_table

這會建立 db/migrate/001_add_a_new_table.rb 這個檔案 ( 注意 add_a_new_table 直接對應到資料表 AddANewTable )

2.編輯 Migration

self.up 會在建立新版本時執行,self.down 則是版本回復。

  class AddANewTable < ActiveRecord::Migration
    def self.up
      create_table :users do |table|
        table.column :name, :string
        table.column :login,  :string, :null => false
        # This column will contain an MD5 hash.
        table.column :password, :string, :limit => 32, :null => false
        table.column :email, :string
      end
    end

    def self.down
      drop_table :users
    end
  end

可用的 Type 有 integer, float, datetime, date, timestamp, time, text, string, binary, boolean

可用的欄位 options 有 limit ( :limit => “50” ) default (:default => “blah” ) null (:null => false implies NOT NULL)

3. 執行 Migration

rake migrate

 特定版本則是 rake migrate VERSION=17

One reply on “Rails 的 Migrations”

Leave a Reply

Your email address will not be published. Required fields are marked *