Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 撤消Rails中以前的种子数据_Ruby On Rails_Undo_Seed - Fatal编程技术网

Ruby on rails 撤消Rails中以前的种子数据

Ruby on rails 撤消Rails中以前的种子数据,ruby-on-rails,undo,seed,Ruby On Rails,Undo,Seed,通过编辑db/seed.rb文件并执行rake db:seed命令,我已将一行数据植入表中。不知不觉地,我在那一行输入了一些错误的信息。因此,我想删除先前添加的数据行。对于相同的对象,是否有任何rake命令,如rake db:rollback对于rake db:migrate有几个方面: 1:当数据库中不存在其他数据时,您希望更改种子数据: 更新seed.rb文件后,只需重新执行rake db:seed。确保您有MyModel。在您尝试向该模型添加任何内容之前,请删除所有 2:您希望更改种子数据

通过编辑
db/seed.rb
文件并执行
rake db:seed
命令,我已将一行数据植入表中。不知不觉地,我在那一行输入了一些错误的信息。因此,我想删除先前添加的数据行。对于相同的对象,是否有任何rake命令,如
rake db:rollback
对于
rake db:migrate

有几个方面:

1:当数据库中不存在其他数据时,您希望更改种子数据:

更新seed.rb文件后,只需重新执行
rake db:seed
。确保您有
MyModel。在您尝试向该模型添加任何内容之前,请删除所有

2:您希望更改种子数据,但数据库中添加了其他数据

这有点难。通常最简单的方法是使用原始sql语句或使用诸如等工具手动更改数据


现在,有一种可能的方法可以一起破解它,那就是在seed.rb文件中做一些巫毒。因此,您可以运行rake db:seed deseed=true
,然后在seed.rb中:

if ENV['deseed'] 
   #Do your deseeding action here
else
   #Do your seeding here.
end
你甚至可以疯狂地做这样的事情:

deseed = ENV['desee']

#DANGER: Dirty hacks upcoming:
deseed? myModelCall = MyModel.method(:destroy_all): myModelCall = MyModel.method(:create)

myModelCall.call :user_id_or_whatevs => 23 #this creates or deletes a MyModel entity with the given parameters
#NOTE this might not work in all cases and I would not necessarily recommend doing this. 

#<3uby
deseed=ENV['desee']
#危险:肮脏的黑客即将到来:
去籽?myModelCall=MyModel.method(:destroy_all):myModelCall=MyModel.method(:create)
myModelCall.call:user_id_或_whatevs=>23#这将创建或删除具有给定参数的MyModel实体
#请注意,这可能不会在所有情况下都起作用,我不一定建议这样做。

#删除数据库,重新创建并重新设定种子。:)@塞尔吉奥·图伦采夫:我同意。但是我必须保留在我做最后一粒种子之前已经存在的数据。我只想删除最后一个种子数据。你能帮我做那件事吗?那没有耙子任务。手动查找和删除数据。如果您预计它会再次发生,请编写一个脚本。这也是我不使用seed的原因之一,请始终使用迁移脚本来填充数据