Sequelize-cli 使用扩展模型 class 创建模型
Sequelize-cli creates model with extending Model class
当我使用 sequelize-cli 创建新模型时,它会通过扩展模型 class 自动创建一个模型。我想用 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;
};
很遗憾,官方没有办法sequelize-cli。实际上它使用 this hardcoded template to generate the model file.
唯一的方法是:
- 创建您自己的 sequelize-cli 分支,并更改此模板文件。
- 无需命令行即可手动定义模型(您只需 copy/paste 另一个模型,然后替换名称和字段)。
当我使用 sequelize-cli 创建新模型时,它会通过扩展模型 class 自动创建一个模型。我想用 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;
};
很遗憾,官方没有办法sequelize-cli。实际上它使用 this hardcoded template to generate the model file.
唯一的方法是:
- 创建您自己的 sequelize-cli 分支,并更改此模板文件。
- 无需命令行即可手动定义模型(您只需 copy/paste 另一个模型,然后替换名称和字段)。