【发布时间】:2017-09-25 05:42:42
【问题描述】:
我有一列用于使用以下 ruby on rails 迁移创建的表
def change
add_column :matches, :st_history, :smallint, array: true, default: []
end
在 postresql 数据库上。我希望将列的所有值重置为默认值。我试过了
Match.update_all(st_history: [])
但这不会改变任何字段。查看api documentation,它指出“它应该只接收可以按原样传递给SQL 数据库的值”,所以我怀疑该数组是一种复杂的数据类型,不能与简单的update_all 命令一起使用。数据库有数百万行,所以我不想单独更新每一行。有什么快速的方法?
【问题讨论】:
-
我相信它有效。你重新加载你的模型并检查了吗?
-
告诉我我提供的答案是否有帮助
-
EJ2015,你是对的,我只是忘了重新加载。你想把这个作为答案,我会接受。因为有人已经回答了,所以删除问题为时已晚。