使黄瓜运行迁移而不是模式加载

时间:2009-08-19 20:40:02

标签: ruby-on-rails cucumber migration

因此我在迁移中加载了一些数据,例如,在创建用户表时创建了默认用户,并且在创建foos表时创建了某些用户角色(如foo_admin)。

问题是黄瓜不喜欢这样,因为它会进行架构加载。

我可以让黄瓜只运行迁移,或者是否有更好的做法来做这类事情?机械师被用作工厂(没有固定装置!)

2 个答案:

答案 0 :(得分:2)

不要使用迁移来加载数据。它被广泛认为是一种不好的做法,因为在构建schema.rb时不会保留数据加载。

从rake任务或您可以挂钩到env.rb文件的开始博客的其他方法加载数据

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

或类似的东西。

答案 1 :(得分:0)

我遇到了类似的问题,并将其追溯到rake中的依赖项。我的解决方案是直接运行黄瓜脚本而不用rake,但这可能需要在Rails中进行一些配置(Merb它可以在框中运行)。另一个解决方案是将rake任务覆盖到它依赖于db:migrate而不是db:load_schema。

NB。我对最近版本的rails没有什么经验,可能也是bin / cucumber脚本或加载模式文件的env.rb文件中的东西。