ruby-on-rails - 如何使用 postgresql 和 ruby​​ on rails 更新类型数组的列

标签 ruby-on-rails postgresql

我有一个表的列是使用以下 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 命令。数据库有数百万行,所以我不想单独更新每一行。执行此操作的快速方法是什么?

最佳答案

这确实有效。只需要重新加载。

关于ruby-on-rails - 如何使用 postgresql 和 ruby​​ on rails 更新类型数组的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46398295/

相关文章:

ruby-on-rails - 没有要加载的文件 -- RMagick2.so

ruby-on-rails - railstutorial.org,第 6 章。未知属性 : password

ruby-on-rails - Active Admin - 如何在 </body> 标签之前添加自定义脚本?

sql - 创建表时检查约束返回错误

regex - 正则表达式匹配从 PostgreSQL 8.3 到 9.2 有什么变化?

ruby-on-rails - Rails,选择助手,添加样式

ruby-on-rails - 在 rspec 中更改关联对象的正确方法

database - 当我启用大页面时,postgres 没有连接

postgresql - 如何简化这个复杂的查询?

sql - 在显示所有其他列时,在同一查询中使用 MIN 值分组