从Rails中的种子文件中删除值

时间:2015-05-17 13:01:58

标签: ruby-on-rails ruby postgresql rake

我的应用程序中有一个种子文件:friends_seed_data.rb。它由以下值组成:["NEW", "OLD", "DELETED"]。我前一段时间跑了rake db:seed我现在在我的数据库中有这三个条件。

现在,我不再需要条件OLD了。我应该如何从种子文件中删除此条件。我已将我的数据库中包含OLD条件的所有数据转换为NEW条件。我的种子文件看起来像:

friends_conditions = ["NEW", "OLD", "DELETED"]
friends_conditions.each do |f|
  s = Friends::Condition.find_or_initialize_by_name(name: f)
  if s.new_record?
    s.save!
  else
    #Do nothing
  end
end

删除rake db:seed后运行OLD不会做任何事情。我该怎么办?

1 个答案:

答案 0 :(得分:0)

种子文件通常仅用于首次从空白状态填充数据库。种子文件 - 除非它正在删除整个表并重新创建它们 - 在第一次运行后可以忽略。

必须在数据库中删除OLD状态;不在种子文件上。

  

我已将包含旧条件的所有数据转换为NEW   我的数据库中的条件

由此,我假设您已将数据库中OLD的所有实例转换为NEW。所以别无他法。忽略种子文件。