2015-04-23 167 views
2

如何从数据库中删除seeds.rb数据,我在seeds.rb中添加了一些数据,即使我改变了,它不工作!!!,如何删除数据库中存在的数据,通过seeds.rb文件输入?重置数据库,从数据库中删除seeds.rb数据

+0

你改变或更新一个或多个数据库表? – sansarp

+2

检查[this](http://stackoverflow.com/questions/14955044/undo-previously-seeded-data-in-rails) – Abhi

+1

显示您的seeds.rd文件 –

回答

0

如果您的数据库中只有来自seed.rb文件的数据,则应在更新seed.rb文件后再次输入rake db:seed。

添加行:ModelName.delete_all创建此模型的新记录之前。

但是,如果你在你的数据库中的一些其他的数据,你可以选择以下解决方案之一:

  • 使用SQL查询
  • 创造纪录的前行manualy删除数据,加线,删除它们。例如:

    在seed.rb文件
    MyModel.where(name: "Foo").destroy_all 
    MyModel.create(name: "Foo") 
    
  • 使用环境变量来切换模式:

    if ENV['seedmode'] == 'removedata' 
        #add removing code here 
    else 
        #here should be normal seed code 
    

然后只需运行seedmode='removedata' rake db:seed