Sequelize.js 如何从sequelizejs模型定义创建数据库表?
对于我的nodejs项目,有几个用Sequelize.js 如何从sequelizejs模型定义创建数据库表?,sequelize.js,sequelize-cli,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, },
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
表?如果实例化Sequelize并调用event.js
脚本,您也可以这样做 如果实例化Sequelize并调用event.js
脚本,您也可以这样做 你可以像@Chase提到的那样做,但在我看来,你应该为模型和迁移拆分文件
通过这种方式,您将在模型文件中表示模型的当前状态(与您已有的一样),并在文件中表示数据库的历史状态
同步将始终删除所有存在的表,并使用模型从头开始创建它们。上面提到的解决方案确实会创建或更新表(虽然它会先删除然后创建),但在这个过程中会丢失所有数据。迁移通常是首选。您可以按照@Chase提到的那样做,但在我看来,您应该为模型和迁移拆分文件 通过这种方式,您将在模型文件中表示模型的当前状态(与您已有的一样),并在文件中表示数据库的历史状态
同步将始终删除所有存在的表,并使用模型从头开始创建它们。上面提到的解决方案确实会创建或更新表(虽然它会先删除然后创建),但在这个过程中会丢失所有数据。通常首选迁移。只有在
选项中才会删除表。在sync()
中,force
设置为true,否则如果不存在,sequelize将创建表,如果表已存在,则它将忽略架构更改。只有在选项中设置了时,它才会删除表。在sync()
中,force
设置为true,否则sequelize将创建不存在的表,如果表已存在,则它将忽略架构更改。