【发布时间】:2021-01-14 20:05:46
【问题描述】:
无法以小写形式获取我的 foreignKey,我的所有关联都是 PascalCase。
所以我有一个带有 role_id (foreignKey) 的简单表“用户” 我有表“角色”。 因此,当创建用户时它工作正常。但是当我查询它时,它会搜索 ForeignKey 名称,例如 RoleId 而不是 role_id。
module.exports = (sequelize, DataTypes) => {
const Role = sequelize.define('Role', {
name: DataTypes.STRING
}, {
tableName: "role"
});
Role.associate = function (models) {
// associations can be defined here
Role.hasMany(models.User)
};
return Role;
}
module.exports = (sequelize, DataTypes) => {
const User = sequelize.define('User', {
id: {
type: DataTypes.UUID,
primaryKey: true,
defaultValue: DataTypes.UUIDV4,
allowNull: false,
autoIncrement: false,
},
email: DataTypes.STRING,
password: DataTypes.STRING,
role_id: DataTypes.INTEGER,
name: DataTypes.STRING,
MerchantId: DataTypes.STRING
}, {
tableName: 'user'
});
User.associate = function (models) {
User.belongsTo(models.Role)
User.belongsTo(models.Merchant)
};
return User;
};
任何解决方案都可以保留所有名称 lower_case_underscore ?
【问题讨论】:
-
如果您希望所有表的所有外键都在蛇形案例中,并且您使用 sequelize v4,您可以使用 underscoredAll 选项。从 v5 开始,此选项已被删除。
标签: node.js postgresql sequelize.js naming-conventions