如何删除下面列出的迁移的self.down方法中的示例数据
class FooSampleData < ActiveRecord:Migration
def self.up
Foo.create(:bar => 1)
Foo.create(:bar => 2)
Foo.create(:bar => 3)
end
def self.down
end
end
class FooSampleDataV2 < ActiveRecord:Migration
def self.up
Foo.create(:bar => 4)
Foo.create(:bar => 5)
Foo.create(:bar => 6)
end
def self.down
end
end
答案 0 :(得分:1)
如果您同时创建数据库表,则销毁表将破坏数据。
如果:bar是唯一的,您可以通过bar找到并销毁该对象。
# up Foo.create([{:bar => 1},{:bar => 2},{:bar => 3}) # down Foo.where(:bar => [1,2,3]).each { |foo| foo.destroy }
<强>被修改强>
我不知道你的情景。种子通常用于启动应用程序。如果您正在进行增量开发(使用部署),通常在创建模型时包含初始数据,而不是在示例中显示的独占迁移中。
如果您真的需要在独家迁移中执行此操作,那么您的创建工作将与您的创建工作成比例。
在我的项目中,我避免在迁移中添加数据。
一些有用的链接: