[英]How to update a column of type array with postgresql and ruby on rails
我有一个表的列,该表是在rails迁移中使用以下Ruby创建的
def change
add_column :matches, :st_history, :smallint, array: true, default: []
end
在postresql数据库上。 我希望将列的所有值重置为默认值。 我努力了
Match.update_all(st_history: [])
但这不会更改任何字段。 查看api文档 ,它指出“它应该只接收可以原样传递给SQL数据库的值”,因此我怀疑该数组是复杂的数据类型,无法通过简单的update_all命令使用。 该数据库有数百万行,因此我不想单独更新每一行。 快速的方法是什么?
您可以尝试创建迁移。并可以提供默认值
update_column :table_name, :col_name, :integer, array: true, null: false, default '{}'
这实际上有效。 只需要重新加载。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.