我在我的Rails应用程序4相关的迁移:

首先3迁移在self.up创建每一个表和和丢弃它们在它们各自的self.down方法。

第四迁移运行的耙任务加载数据给所有三个(在self.up)。我想放什么在self.down这种迁移的,从3个表删除行?

我是不是做错了?可能应该已创建了一个迁移其中I创建3代表和在self.up加载数据和刚刚滴在self.down方法所有三个表?

有帮助吗?

解决方案

这是错误的!

迁移应该仅用于迁移数据的模型不是你的数据

的Rails 2.3.4增加 '种子'。这是在数据库文件/ seeds.rb包含Ruby代码为“引导”你的数据库。这是创建半静态的内容为你的数据库像类别,查找表或用户帐户的好方法。

可以然后用一个简单的rake任务加载种子数据

rake db:seed

其他提示

有是不是一个真正的正确或错误的方式做到这一点。基于你做了什么,第四届迁移应该只是卸载在其上下方法的数据。每个向下应该只撤消了的动作。

在创建该表迁移

加载数据肯定不是必需的。如果您有创建的has_many或belongs_to的关系,3个表然后它将使意义将数据放在一个单独的迁移,因此您可以创建关系,然后在您的数据负载使用它们。

所有这一切不谈,如果你有一个rake任务加载数据,为什么与运行瑞克任务迁移烦恼呢?只是要运行安装的,或者只是用你的rake任务加载或卸载一些演示数据rake任务的一部分。

通常我把我的迁移模式专注,我把所有的数据装载在rake任务我单独调用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top