我正在定义一个Sequelize模型来映射数据库中现有表中的字段。但是,表中的字段名称很长且对开发人员不友好。
是否可以将数据库字段名称映射到模型定义中的别名,以便我的服务可以使用更多对开发人员友好的模型属性名称?
示例:
这个...
// Horrible field names
module.exports = (sequelize, DataTypes) =>
sequelize.define('Transaction', {
f_curr_finaccount__amount: DataTypes.DECIMAL,
f_curr_finaccount__tx_type: DataTypes.STRING,
f_finaccount__currency_iso_id: DataTypes.STRING,
f_lex_finaccount__tx_atomic_status: DataTypes.STRING
}, {
schema: 'fins',
tableName: 'fins_financialaccounttransaction',
timestamps: false
})
...成为...
// Developer-friendly field names
module.exports = (sequelize, DataTypes) =>
sequelize.define('Transaction', {
amount: {
type: DataTypes.DECIMAL,
fieldName: 'f_curr_finaccount__amount'
},
type: {
type: DataTypes.STRING,
fieldName: 'f_curr_finaccount__tx_type'
},
currency: {
type: DataTypes.STRING,
fieldName: 'f_finaccount__currency_iso_id'
},
status: {
type: DataTypes.STRING,
fieldName: 'f_lex_finaccount__tx_atomic_status'
}
}, {
schema: 'fins',
tableName: 'fins_financialaccounttransaction',
timestamps: false
})
答案 0 :(得分:1)
与您完全一样,但是属性的名称仅为field
。所有列(包括外键)都相同。
// Developer-friendly field names
module.exports = (sequelize, DataTypes) =>
sequelize.define('Transaction', {
amount: {
type: DataTypes.DECIMAL,
field: 'f_curr_finaccount__amount'
},
type: {
type: DataTypes.STRING,
field: 'f_curr_finaccount__tx_type'
},
currency: {
type: DataTypes.STRING,
field: 'f_finaccount__currency_iso_id'
},
status: {
type: DataTypes.STRING,
field: 'f_lex_finaccount__tx_atomic_status'
}
}, {
schema: 'fins',
tableName: 'fins_financialaccounttransaction',
timestamps: false
})