我在Ruby on Rails中理解遷移有點麻煩。我在我的應用程序的db\migrate\
目錄下面的兩個類(保存在單獨的文件):Rails - 理解db:migrate
class CreateUsers < ActiveRecord::Migration
def self.up
create_table :users do |t|
t.string :name
t.string :email
t.timestamps
end
end
def self.down
drop_table :users
end
end
class AddEmailUniquenessIndex < ActiveRecord::Migration
def self.up
add_index :users, :email, :unique => true
end
def self.down
remove_index :users, :email
end
end
我在這兩個文件是如何似乎是一起運行困惑。在創建第二課時,Michael Hartl的書中說:「我們可以編輯用戶表的遷移文件,但這需要回滾,然後再遷移回來。Rails Way每次發現我們的數據時都會使用遷移模型需要改變。「這些遷移如何實際工作?數據庫遷移時目錄中的所有文件是否都運行?就像幕後發生的事情一樣?
'當您運行db:migrate時,rails會檢查數據庫中的一個特殊表,其中包含應用於數據庫的最後一次遷移的時間戳。表名是'schema_migrations',它將存儲已經運行的遷移文件的時間戳。 – rubyprince 2011-06-12 04:57:19