Rails的迁移问题
-
10-07-2019 - |
题
我在我的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任务我单独调用。
不隶属于 StackOverflow