如何解决如何混合续集骆驼案和蛇案?
使用 Sequelize 6,我有一个与表相关联的模型,该模型在某些列中有大写字母,在其他列中有大写字母(这些列不是 created_at 或 updated_at)。
下划线的模型配置似乎影响与相应表列关联的每个属性。有没有办法覆盖模型级别的下划线配置,使得与表列关联的属性保留表的原始列名?
代码示例:
const someModel = sequelize.define('some_table',{
'id': {
type: dataTypes.BIGINT,primaryKey: true,autoIncrement: true,},'other_table_id': {
type: dataTypes.BIGINT,allowNull: false,references: {
model: 'other_table',key: 'id',deferrable: INITIALLY_IMMEDIATE,'CAPITAL_letterColumn': {
type: dataTypes.STRING,allowNull: true,defaultValue: null,}
},{
timestamps: false,paranoid: false,// underscored: true,// true === snake case,false === camelcase
}
});
someModel.associate = (models) => {
someModel.belongsTo(models.other_table,{ foreignKey: 'other_table_id',targetKey: 'id' });
};
我收到以下错误:
UnhandledPromiseRejectionWarning: SequelizeDatabaseError: column "otherTableId" does not exist
如果我设置
underscored: true
我收到以下错误:
UnhandledPromiseRejectionWarning: SequelizeDatabaseError: column "c_a_p_i_t_a_l_letter_column" of relation "some_table" does not exist
解决方法
看起来在模型定义中添加字段属性解决了这个问题。
'other_table_id': {
field: 'other_table_id',// <-- this line
type: dataTypes.BIGINT,allowNull: false,references: {
model: 'other_table',key: 'id',deferrable: INITIALLY_IMMEDIATE,},
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。