当我使用sequelize-cli创建一个新模型时,它会通过扩展model类自动创建一个模型。我想用sequelize.define语法创建模型。我该如何更改?这是我可以更改的配置吗?
命令
npx sequelize-cli model:generate --name test --attributes first_name:string,last_name:string
所需结果
"use strict";
module.exports = (sequelize, DataTypes) => {
const template = sequelize.define(
"test",
{
first_name: DataTypes.STRING,
last_name: DataTypes.STRING
},
{}
);
test.associate = function(models) {
};
return test;
};
实际结果
'use strict';
const {
Model
} = require('sequelize');
module.exports = (sequelize, DataTypes) => {
class test extends Model {
static associate(models) {
}
}
test.init({
first_name: DataTypes.STRING,
last_name: DataTypes.STRING
}, {
sequelize,
modelName: 'test',
});
return test;
};
不幸的是,使用officiel sequelize cli是没有办法的。实际上,它使用这个硬编码模板来生成模型文件。
唯一的方法是:
- 创建自己的sequelize-cli分支,并更改此模板文件
- 要在不使用命令行的情况下手动定义模型(只需复制/粘贴另一个模型,然后替换名称和字段(