我已经阅读了documentation for Sequelize,我看到了如何使用define,但我不知道如何从Sequelize定义中读取类型/ allowNull / primaryKey / autoIncrement属性。这是sequelize-auto;
生成的文件的一部分/* jshint indent: 2 */
module.exports = function(sequelize, DataTypes) {
return sequelize.define('account', {
id: {
type: DataTypes.BIGINT,
allowNull: false,
primaryKey: true,
autoIncrement: true
},
parent_account_id: {
type: DataTypes.BIGINT,
allowNull: false,
references: {
model: 'account',
key: 'id'
}
},
master_account_id: {
type: DataTypes.BIGINT,
allowNull: false,
references: {
model: 'account',
key: 'id'
}
},
name: {
type: DataTypes.STRING,
allowNull: false
},
// ...
答案 0 :(得分:0)
注意模型和modelManager的结构:
models: { user: user },
modelManager: ModelManager { models: [ user ], sequelize: [Circular] },
我认为它没有扩展用户,因为对象必须太大,所以我尝试了:
var userDefinition = this.orm["modelManager"].getModel("user");
if (userDefinition.attributes.id.type.key == "BIGINT") ...
[]
必须在TypeScript中使用,因为modelManager未在编译时初始化。