【问题标题】:SQLite says table doesn't exist when I created it with Sequelize当我用 Sequelize 创建表时,SQLite 说表不存在
【发布时间】:2022-11-29 09:51:34
【问题描述】:

我试图了解 Sequelize 的工作原理,但我不明白为什么我会得到 SQLITE_ERROR: no such table: Users,即使我使用 sequelize.define 创建了表。代码:

const { Sequelize, DataTypes } = require('sequelize');

const db = new Sequelize({
    dialect: 'sqlite',
    storage: './database.sqlite',
});

async function testdb() {
    try {
        await db.authenticate();
        console.log('db connected'); // test 1
    } catch (error) {
        console.error(error);
    }

    const User = db.define('User', {
        userName: {
            type: DataTypes.STRING,
            allowNull: false,
            unique: true,
        },
        email: {
            type: DataTypes.STRING,
            allowNull: false,
        },
        bio: {
            type: DataTypes.TEXT,
        },
    });

    console.log(db.models.User); // test 2

    const user = await User.create({
        userName: 'epic_user01',
        email: 'epic.user@gmail.com',
        bio: 'hello world!!!',
    });

    console.log(user.id); // test 3
}

testdb();

在收到错误消息之前,测试 1 和 2 成功返回。

【问题讨论】:

    标签: javascript node.js database sqlite sequelize.js


    【解决方案1】:

    您必须调用 sync 来实际创建表,在定义之后和创建之前添加它:

    await User.sync();
    

    【讨论】:

    • 如果您觉得它有用,如果您投票并标记为已接受,我将不胜感激 =D
    猜你喜欢
    • 2011-04-12
    • 2011-05-05
    • 1970-01-01
    • 2011-09-03
    • 2010-09-30
    • 2021-04-14
    • 2013-03-06
    • 1970-01-01
    • 2018-08-13
    相关资源
    最近更新 更多