2009-08-19 60 views
1

所以我必須在遷移了一些數據加載,例如由用戶表時會創建一個默認的用戶和某些用戶角色的創建(如foo_admin)在創建時的FOOS表被製成。製作黃瓜運行遷移,而不是架構負載

問題是黃瓜不喜歡這個,因爲它做架構加載。

我可以讓黃瓜只是運行遷移,或者是否有更好的做法來做這種事情?機械師被用作工廠(無夾具!)

回答

2

請勿使用遷移來加載數據。它被廣泛認爲是一種不好的做法,因爲在構建schema.rb時數據加載不會被保留。

從耙子任務負載數據,或者,你可以連接到您的env.rb另一種方法文件的開始博客

begin do 
    Role.create :name=>"admin" 
    `rake RAILS_ENV="test" db:load_data_for_testing ` 
end 

或者類似的東西。

0

我遇到了類似的問題,並追溯回抽傭的依賴關係。我的解決方案是直接運行黃瓜腳本而不使用耙子,但是這可能需要在Rails中進行一些配置(Merb會在框中運行)。另一種解決方案是覆蓋rake任務,取決於db:migrate而不是db:load_schema。

注意:我對最近版本的rails有一點經驗可能也可以在加載模式文件的bin/cucumber腳本或env.rb文件中。