【发布时间】:2011-08-11 12:43:05
【问题描述】:
当我当前的项目开始时,我还在学习 RoR,我们有一个更有经验的人来推动我们的项目组织(文件去哪里,我们如何处理项目)。他断言的一件事是,当您拥有表的种子数据时,您将这些种子数据放入迁移本身。并且他还断言db/seeds.rb仅用于在执行单元或AT时在测试之间设置测试db(我们分别使用rspec和cucumber)。
最近我在这里阅读了各种答案,暗示我们做错了,我希望这里的人能给我更深入的解释“Rails Way”是什么。
谢谢!
编辑:
我需要了解的几件事:
一个。我如何确保这些种子数据在数据库中进行测试。有人告诉我,rspec 测试通过将测试放入事务中并最后简单地回滚该事务来清理数据库,所以如果这是真的,测试数据库是否会在整个测试运行之前播种?是什么导致播种发生。
rake db:test:prepare
似乎没有为数据库播种,尽管我可能弄错了
b.我必须实际运行吗
rake db:migrate
rake db:seed
在引入需要将新种子数据添加到 db/seeds.rb 的迁移之后?
c。我是否必须将播种的每个单独部分都附上检查以确保它是必要的,以便在重新运行种子时不会出现异常,例如,在先前播种的事物上尝试重新播种时违反唯一性约束。 (这就引出了一个问题,这个问题在语法上是否正确??)。
我认为导致“我们的人”走上迁移播种之路的原因是,我们可以依靠整个迁移机制不重新运行以前的种子,而不是在尝试种子之前检查种子.rb 中的所有内容。 ..
我希望这更清楚......
【问题讨论】:
标签: ruby-on-rails