3
當沒有指定RAILS_ENV
時,db:create
和db:drop
影響開發和測試。然而,在相同的情況下db:migrate
隻影響發展。爲什麼是這樣?爲什麼不同的rake命令會影響不同的數據庫?
當沒有指定RAILS_ENV
時,db:create
和db:drop
影響開發和測試。然而,在相同的情況下db:migrate
隻影響發展。爲什麼是這樣?爲什麼不同的rake命令會影響不同的數據庫?
這是因爲只有在運行測試時test
數據庫纔會通過schema.rb
進行更新。
見here:
爲了運行測試,測試數據庫將需要有目前的結構。測試助手檢查您的測試數據庫是否有任何未完成的遷移。如果是這樣,它會嘗試將
db/schema.rb
或db/structure.sql
加載到測試數據庫中。如果遷移仍然未決,則會引發錯誤。通常這表示您的模式未完全遷移。 針對開發數據庫(bin/rake db:migrate
)運行遷移將使模式保持最新。