gpt4 book ai didi

javascript - Sequelize : SQLITE_ERROR: near "[]": syntax error

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

我正在为我的数据库使用 Sequelize (6.3.0) 和 sqlite3 (4.2.0),我正在尝试定义以下模型:

this.define("giveaways", {
channel: {
type: Sq.STRING,
allowNull: false
},
message: {
type: Sq.STRING,
allowNull: false
},
name: {
type: Sq.STRING,
allowNull: false
},
end: {
type: Sq.DATE,
allowNull: false
},
participating: {
type: Sq.ARRAY(Sq.STRING),
allowNull: false,
defaultValue: []
},
winnersCount: {
type: Sq.NUMBER,
allowNull: false
},
winners: {
type: Sq.ARRAY(Sq.STRING),
allowNull: false,
defaultValue: []
},
finished: {
type: Sq.BOOLEAN,
allowNull: false,
defaultValue: false
},
host: {
type: Sq.STRING,
allowNull: false
}

});
它应该在进程启动时定义,但我收到以下错误:
(node:22440) UnhandledPromiseRejectionWarning: SequelizeDatabaseError: SQLITE_ERROR: near "[]": syntax error
当然,每当我尝试对此表执行任何操作时,都会出现以下错误:
(node:22440) UnhandledPromiseRejectionWarning: SequelizeDatabaseError: SQLITE_ERROR: no such table: giveaways
我想问题来自使用 ARRAY 数据类型的“参与”和“获胜者”行。
谢谢你的帮助

最佳答案

让我引用 manual :

ARRAY()

An array of type, e.g. DataTypes.ARRAY(DataTypes.DECIMAL). Only available in postgres.


(强调我的。)
因此,您不能将 ARRAY 数据类型与 SQLite3 一起使用,只能将 PostgreSQL 作为您的后端。
您还可以查看 SQLite3 docs - SQLite3 没有类似数组的数据类型,Sequelize 可以使用它来实现 ARRAY
附带说明:您应该检查代码以了解为什么会收到未处理的 promise 拒绝。听起来好像您没有正确处理异步错误。也许在异步调用中缺少 .catch

关于javascript - Sequelize : SQLITE_ERROR: near "[]": syntax error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62752636/

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