当我用Sequelize创建表时,SQLite显示表不存在

ej83mcc0  于 2022-11-30  发布在  SQLite
关注(0)|答案(1)|浏览(305)

我试图理解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返回成功。

lrpiutwd

lrpiutwd1#

您必须调用sync来实际创建表,在define之后和create之前添加以下命令:

await User.sync();

相关问题