【发布时间】:2019-08-18 04:47:22
【问题描述】:
对于现有的 MySQL 数据库,我使用 Sequelize-auto 包来生成模型。但是模型类没有关联。
我有一个 MySQL 数据库,我将它用于 NodeJS Web 项目。我也使用 Sequelize 作为 ORM。由于数据库已经存在,我想将模型类生成为实体。所以我用了sequelize-auto
https://github.com/sequelize/sequelize-auto 生成模型类。但是,当它们生成时,属性已正确设置,但关联并没有与模型类一起出现。所以我在从数据库中获取数据时遇到了问题。
这是使用 sequlize-auto 生成的两个模型类。数据库中有两个表,分别命名为部门和类别。 department.js 和 category.js 是生成的两个模型类
department.js
module.exports = function(sequelize, DataTypes) {
return sequelize.define('department', {
department_id: {
type: DataTypes.INTEGER(11),
allowNull: false,
primaryKey: true,
autoIncrement: true
},
name: {
type: DataTypes.STRING(100),
allowNull: false
},
description: {
type: DataTypes.STRING(1000),
allowNull: true
}
}, {
tableName: 'department',
timestamps: false,
});
};
category.js
module.exports = function(sequelize, DataTypes) {
return sequelize.define('category', {
category_id: {
type: DataTypes.INTEGER(11),
allowNull: false,
primaryKey: true,
autoIncrement: true
},
department_id: {
type: DataTypes.INTEGER(11),
allowNull: false
},
name: {
type: DataTypes.STRING(100),
allowNull: false
},
description: {
type: DataTypes.STRING(1000),
allowNull: true
}
}, {
tableName: 'category',
timestamps: false,
});
};
【问题讨论】:
-
sequelize auto 没有生成关联的功能,您必须手动执行。但是他们提供了一种使用生成的模型并将关联添加到它们的方法github.com/sequelize/sequelize-auto/issues/34
标签: mysql node.js orm model sequelize.js