如何从 Sequelize 模型自动生成迁移

Posted

技术标签:

【中文标题】如何从 Sequelize 模型自动生成迁移【英文标题】:How to generate migrations automatically from Sequelize models 【发布时间】:2021-03-17 17:49:13 【问题描述】:

我刚开始使用 node.js 进行编程。我需要一个 ORM,所以我使用了 Sequelize 库。我编写了我的用户模型如下,我需要为它创建一个迁移。有没有办法从 Sequelize 模型自动创建迁移,而不是自己编写它们? 我尝试了包sequelize-auto-migrations 并运行npx makemigration --name create_users 但它返回错误:

Unexpected token 

我正在使用 node v10.19.3

这是我的 Sequelize 模型:

const Model = require('sequelize');

module.exports = (sequelize, DataTypes) => 
  class User extends Model 
    getFullname() 
      return [ this.firstname, this.lastname ].join(' ');
    
  
  User.init(
    firstName:  type: DataTypes.STRING, allowNull: false ,
    lastName:  type: DataTypes.STRING, allowNull: false ,
    email:  type: DataTypes.STRING, allowNull: false, unique: true ,
    national_number:  type: DataTypes.STRING, unique: true ,
    phone_number:  type: DataTypes.STRING, allowNull: false, unique: true ,
    username:  type: DataTypes.STRING, allowNull: false, unique: true ,
    join_date:  type: DataTypes.DATEONLY, defaultValue: sequelize.NOW ,
    last_login:  type: DataTypes.DATE ,
    password:  type: DataTypes.STRING, allowNull: false ,
    active:  type: DataTypes.BOOLEAN, allowNull: false, defaultValue: true 
  , 
    sequelize,
    modelName: 'User',
  );
  return User;
;

【问题讨论】:

【参考方案1】:

您可能想改用 sequelize-cli。要运行迁移,您必须运行此命令 npx sequelize-cli model:generate sequelize.com 上的这个链接应该可以帮助https://sequelize.org/master/manual/migrations.html

【讨论】:

我已经看到了那个 URL,但那是为了运行迁移而不是创建。我需要自动创建它们。现在,我每次更改模型时都必须手动创建它们 在链接中说您可以使用此 sequelize-cli 模型创建迁移:generate --name ***.com/questions/27835801/…这个链接会帮助你。

以上是关于如何从 Sequelize 模型自动生成迁移的主要内容,如果未能解决你的问题,请参考以下文章

使用 sequelize 和 typescript 进行自动迁移

NodeJS sequelize 自动生成模型并运行迁移 SQL 语法错误

使用 SequelizeJS 和 CLI 进行迁移

Sequelize - 模型和迁移

更改模型后如何创建 Sequelize cli db 迁移

避免 created_at 和 updated_at 由 sequelize 自动生成