gpt4 book ai didi

node.js - 格式错误的数组文字 : "1" error when updating column in postgres sequelize migration script

转载 作者:行者123 更新时间:2023-12-03 22:30:08 24 4
gpt4 key购买 nike

我正在尝试更新表“myTable”的列属性“type”。
我知道 Postgres 支持 Sequelize.ARRAY(Sequelize.JSONB) 类型,所以我想尝试一下。
因此,我将迁移更新到 ff。
起初,我尝试了将列属性 'type' 更新为的简单方法

return Promise.all([
queryInterface.changeColumn("MyTable", "column1", {
type: Sequelize.ARRAY(Sequelize.STRING)
})
])
但它给出了错误:
column **"column1" cannot be cast automatically to type jsonb[]

所以我尝试了不同的方法:
return Promise.all([
queryInterface.changeColumn("MyTable", "column1", {
type: Sequelize.ARRAY(Sequelize.JSONB) + 'USING CAST("data" as ' + Sequelize.ARRAY(Sequelize.JSONB) + ')'
})
])
但相反,它给出了错误:
malformed array literal: "1"

我只想更新我的专栏的“类型”,但这让我很头疼。
Postgres 和 Sequelize 版本是:
"pg": "^8.6.0",
"sequelize": "^6.6.2",
关于如何解决这个问题的任何想法?

最佳答案

第一个错误是因为没有从您神秘的、未声明的前列类型到 jsonb[] (jsonb 数组)的注册转换。 (我假设 varchartext ?)
第二个错误是因为列中的所有现有值必须是合法的数组文字才能转换为 jsonb[] 。有效示例:

{"{\"foo\": \"bar\"}","{\"baz\": \"bam\"}"}
jsonb[] 对于数据类型来说是一个非常奇怪的选择。
您确定您不想使用纯文本数组 ( text[] ) 或只需要包含 JSON 数组的 jsonb 吗?

关于node.js - 格式错误的数组文字 : "1" error when updating column in postgres sequelize migration script,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67754503/

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