gpt4 book ai didi

postgresql - 将 JSON 列类型迁移到 HSTORE 列类型

转载 作者:行者123 更新时间:2023-11-29 11:30:30 25 4
gpt4 key购买 nike

我目前有以下数据库架构:

create_table :user_actions do |t|
t.integer :emitter_id
t.string :emitter_type
t.integer :target_id
t.string :target_type
t.json :payload
t.timestamps
end

我想将 payload 字段从 json 迁移到 hstore

执行以下操作:

change_column :user_actions, :payload, :hstore

导致以下错误消息:

PG::DatatypeMismatch: ERROR:  column "payload" cannot be cast automatically to type hstore
HINT: Specify a USING expression to perform the conversion.

不确定如何使用 USING 提示以及在不丢失任何数据的情况下执行此迁移的最佳方法是什么?

最佳答案

提示:指定一个 USING 表达式来执行转换

实际格式是:

change_column :user_actions, :payload, '[type_to_which_you_want_to_change] USING CAST(data AS [type_to_which_you_want_to_change])'

所以在你的情况下:

change_column :user_actions, :payload, 'hstore USING CAST(payload AS hstore)'

引用:

https://stackoverflow.com/a/25032193/1222852

关于postgresql - 将 JSON 列类型迁移到 HSTORE 列类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24259531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com