You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sequelize V6配置表关联时额外生成UserUserId字段问题求助

问题根因

你仅在Post.belongsTo(User)的配置中声明了外键为userId,但User.hasMany(Post)未同步配置对应的关联外键。Sequelize 检测到两侧关联参数不匹配时,会自动按照模型名+主键字段名的规则生成默认外键列:你的User模型主键为userId,因此自动生成了多余的UserUserId列。

修复方案

修改resetTables.js中的关联配置,给User.hasMany也同步指定和belongsTo完全对齐的外键参数即可:

User.hasMany(Post, {
    foreignKey: {
        name: "userId",
        type: DataTypes.UUID,
        allowNull: false
    },
    onDelete: "CASCADE"
});
Post.belongsTo(User, {
    foreignKey: {
        name: "userId",
        type: DataTypes.UUID,
        allowNull: false,
        validate: {
            notNull: true
        }
    },
    onDelete: "CASCADE"
});

修改后重新执行建表逻辑,多余的UserUserId列就不会再生成了。

内容的提问来源于stack exchange,提问作者Gareth T.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 19:36:03