sequelize.js - 如何从sequelizejs模型定义创建数据库表?

标签 sequelize.js sequelize-cli

我的 Nodejs 项目使用 sequelizejs 定义了多个模型。以下是 event.js 中事件模型的示例:

const Event = db.define('event', {
    id: {type: Sql.INTEGER,
         primaryKey:true,
         min: 1},
    name: {type: Sql.STRING,
           min:2,
           allowNull: false,
        }, 
    event_info: {type: Sql.JSON},
    current_step: {type: Sql.STRING},
    customer_id: {type: Sql.INTEGER},
    access_list: {type: Sql.JSON},
    event_snapshot: {type: Sql.JSON},
    event_category_id: {type: Sql.INTEGER,
            },
    status: {type: Sql.STRING,
             isIn: ['active', 'cancelled', 'aborted', 'completed']},
    last_updated_by_id: {type: Sql.INTEGER},
    createdAt: Sql.DATE,
    updatedAt: Sql.DATE
}); 

有没有办法可以在命令行中从 event.js 创建 event 表?

最佳答案

您可以按照 @Chase 提到的那样进行操作,但以我的愚见,您应该为模型和迁移拆分文件。

这样,您将在模型文件(如您拥有的文件)中显示模型的当前状态,并在 Migration 中显示数据库的历史状态。文件。

同步将始终删除任何存在的表并使用模型从头开始创建它们。提到的解决方案确实会创建表或更新它(认为它将先删除然后创建),但您将在此过程中丢失所有数据。通常首选迁移。

关于sequelize.js - 如何从sequelizejs模型定义创建数据库表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55058035/

相关文章:

mysql - 继承多对多关系 : Cannot read property 'split' of undefined

javascript - 按日期查询,列为日期时间

javascript - Sequelize include 不适用于 hasOne 关系

node.js - Sequelize 中的时区问题

node.js - Sequelize 错误 : cannot find property "startYear" of undefined

node.js - 如何在 Sequelize CLI 中添加、删除新列

mysql - 从 Node.js 中的多个表获取数据的最佳方法

sequelize.js - 我怎么能在 sequelize 中编写这个查询?

javascript - 找不到带有 sequelize 的模块模型

sql - 续集嵌套包含结果集父对象