迁移应该是什么样子?我想利用 jsonb 数组查询技术。
我会这样写迁移:
def change
reversible do |dir|
dir.up { change_column :models, :attribute, 'jsonb USING CAST(attribute AS jsonb)' }
dir.down { change_column :models, :attribute, 'json USING CAST(attribute AS json)' }
end
end
我不知道这与其他解决方案在性能方面如何比较,但我在一个包含 120,000 条记录的表上测试了它,每条记录有四个json
列,我花了大约一分钟来迁移该表。当然,我想这取决于事情的复杂程度json
结构是。
另请注意,如果您现有的记录的默认值为{}
,你必须添加到上面的语句中default: {}
,因为否则你就会有jsonb
列,但默认值将保留为'{}'::json
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)