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
enddef 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
發佈留言