[英]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.