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 另一个模型,然后替换名称和字段)。