Min*_*ini 5 activerecord json ruby-on-rails
我有一个表有一个字符串列包含 json 数据每条记录就像
{"id":1,"type":"car","name":"bmw"}
{"id":2,"type":"car","name":"Fiat"}
{"id":3,"type":"truck","name":"RAM"}
Run Code Online (Sandbox Code Playgroud)
现在我需要进行迁移以通过 rails ActiveRecord::Migration[5.0] 从 json 字符串中删除 name 的元素,变成这样
{"id":1,"type":"car"}
{"id":2,"type":"car"}
{"id":3,"type":"truck"}
Run Code Online (Sandbox Code Playgroud)
如果数据库是Postgresql,列是jsonb,那么假设你要操作表car列
<MODEL_NAME>.update_all("car = car - 'name'")
Run Code Online (Sandbox Code Playgroud)
可以通过 Rake 任务或数据迁移来完成
我已经通过 rake 脚本完成了
desc 'Remove name'
task remove_name: :environment do
Entry.all.find_each do |entry|
puts "Removing #{entry.id}"
entry.data.delete("name")
entry.save
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2183 次 |
| 最近记录: |