【问题标题】:Sequelize : SQLITE_ERROR: near "[]": syntax error续集:SQLITE_ERROR:靠近“[]”:语法错误
【发布时间】:2020-07-06 17:09:05
【问题描述】:

我正在为我的数据库使用 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 数据类型的“参与”和“获胜者”行。

感谢您的帮助

【问题讨论】:

    标签: javascript node.js sqlite sequelize.js


    【解决方案1】:

    让我引用manual

    ARRAY()

    type 的数组,例如DataTypes.ARRAY(DataTypes.DECIMAL)仅在 postgres 中可用。

    (强调我的。)

    因此,您不能将ARRAY 数据类型与 SQLite3 一起使用,而只能将 PostgreSQL 作为您的后端。

    您还可以查看 SQLite3 docs - SQLite3 没有 Sequelize 可以用来实现 ARRAY 的类似数组的数据类型。

    附带说明:你应该检查你的代码,看看为什么你会收到未处理的 Promise 拒绝。听起来好像您没有正确处理异步错误。也许在异步调用中缺少.catch

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-01
      • 1970-01-01
      • 2016-06-18
      • 2020-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多