2009-08-19 28 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文件中。