1

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

问题是黄瓜不喜欢这样,因为它会加载模式。

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

4

2 回答 2

2

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

从 rake 任务或其他可以挂钩到 env.rb 文件的 begin blog 的方法加载数据

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

或类似的东西。

于 2009-08-26T17:45:49.733 回答
0

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

注意。我对最新版本的 rails 几乎没有经验,bin/cucumber 脚本或 env.rb 文件中也可能有加载模式文件的内容。

于 2009-08-26T16:55:06.450 回答