从Rails控制台批量更新数据库字段

时间:2014-08-20 16:12:59

标签: ruby-on-rails-3 postgresql activerecord

我有一个Rails 3.2.19应用程序,我有一个呼叫模型和一个区域模型。

调用belongs_to:region并在表中包含region_id Region has_many:调用和我感兴趣的字段在Region模型中称为area,它是一个包含City(Houston,Dallas)的字符串类型。

我的问题是。我有近18K的通话记录,我需要将region_id更新到区域的区域。即" 1"或" 2"

通过控制台更新此region_id字段的最佳方法是什么,甚至更好地通过我们用作数据库的PSQL?

我知道这可能是一件简单的事情,但我想确保我不会在生产中造成问题。

1 个答案:

答案 0 :(得分:2)

使用update_all

Call.where(area: 'Houston').update_all(region_id: 1)

更新没有region_id的电话

Call.where("region_id IS NULL").update_all(region_id: 1)