在“table”的属性中添加了名为“id”的列,但未标记“primaryKey: true”

问题描述 投票:0回答:1

即使使用primaryKey: true,也会抛出错误“名为‘id’的列已添加到‘users’的属性中,但未标记为‘primaryKey: true’”。

应用程序运行正常,直到我昨天将其关闭,已经设置了主键:true。

export const users = connection.define("users", {
    id: {
        type: DataTypes.INTEGER,
        primaryKey: true,
        allowNull: false,
        autoIncrement: true,
    },
    email: {
        type: DataTypes.STRING,
        allowNull: false
    },
    senha: {
        type: DataTypes.STRING,
        allowNull: false
    },
    empresa_id: {
        type: DataTypes.INTEGER,
        allowNull: true
    },
    isAdmin: DataTypes.TINYINT,
}, {
    freezeTableName: true
})
export default async function createUser(req = NextRequest, res = NextResponse) {
    let email = req.body.email
    let password = await hash(req.body.password)
    let isAdmin = 1

    await users.create({
        email: email,
        senha: password,
        isAdmin: isAdmin,
    }).then(data => {
        console.log(data)
        res.status(200).json({'response': 'Usuário criado com sucesso!'})
    }).catch(err => {
        console.log(err)
        res.status(400).json({'response': 'Erro ao criar usuário.'})
    })
}

我尝试了所有sync()选项,但出现了同样的错误。

mysql next.js sequelize.js
1个回答
0
投票

我也面临同样的问题,补充一下 ID: { 类型:DataTypes.INTEGER, 自动增量:真, 主键:true }, 进入你的模型定义

© www.soinside.com 2019 - 2024. All rights reserved.