2011-08-11 55 views
1

当我当前的项目开始我还在学习的回报率,我们有一个更有经验的家伙开着我们的项目组织(其中文件去,我们做的工作该项目)。他声称的一件事是,当你有表格的种子数据时,你将这些种子数据放入迁移中。而且他还声称db/seeds.rb仅用于在执行单元或AT(我们分别使用rspec和cucumber)时在测试之间设置测试数据库。什么是使用轨道DB/seeds.rb正确的方法3

最近我一直在这里阅读各种答案的暗示我们没有正确地这样做的,我希望这里有人可以给我什么样的“Rails的路”是这个更深层次的解释。

谢谢!

编辑:

,我需要了解几件事情:

一个。我如何确保此种子数据在数据库中进行测试。我被告知,rspec测试通过将测试放在事务中并最终简单地回滚该事务来清理数据库,所以如果这是真的,测试数据库是否会在整个测试运行之前被播种?什么导致播种发生。

rake db:test:prepare 

似乎并不种子数据库,虽然我可能会被误认为

湾我必须实际运行

rake db:migrate 
rake db:seed 

引入了迁移后,需要新的种子数据将被添加到DB/seeds.rb?

c。我必须附上支票播种的每个部件,以确保它是必要的,以便重新运行时,种子和有,例如我不明白的例外,是试图在东西重新播种时违反唯一性约束先前接种的。 (这导致了问题,这个问题甚至在语法上是否正确?)。

我认为导致“我们的家伙”在迁移过程中沿播种路径的事情是,我们可以指望整个迁移机制不要重新运行以前的种子,而不是在尝试种子之前检查seeds.rb中的所有内容...

我希望这是更清晰...

回答

2

迁移是操作数据库的结构,而不是在它的数据,当然不是简单的人口工作。

简单地,这是一个rake任务是,在一个分贝/ seeds.rb指定的数据吸收。

+1

我按照逻辑,但我试图找出如何处理这几个细节。我将添加到我的问题... – jaydel

+1

不用于测试或分期数据集使用seeds.rb - 它应该只用于那些需要为您的应用程序运行的基础数据。 –

+0

种植迁徙非常脆弱。您的模型验证和ORM回调可能很容易在迁移路径中出现错误的引用。 –

相关问题