如何查看已应用的Sequelize迁移及最后一个迁移信息?
查看已应用的Sequelize迁移及最后执行项的方法
当然有办法!下面我给你两种常用的方式来追踪已应用的迁移,快速找到最后执行的那一个:
1. 使用Sequelize CLI命令(最便捷)
直接在项目根目录下运行这个命令,就能一目了然看到所有迁移的状态:
sequelize db:migrate:status
执行后会得到类似这样的输出:
up 20240101000000-create-users.js up 20240102000000-add-email-to-users.js down 20240103000000-create-posts.js
- 标记为
up的是已经成功执行的迁移,down则是未执行的 - 列表里最后一个
up的条目,就是最后执行的迁移
2. 直接查询数据库表(底层直观方式)
Sequelize会自动创建一个迁移追踪表,默认名叫SequelizeMeta(部分数据库可能是小写的sequelizemeta),里面存着所有已执行的迁移文件名。你可以用SQL直接查询:
SELECT * FROM SequelizeMeta;
如果想直接获取最后执行的迁移,可按插入顺序倒序取第一条:
SELECT * FROM SequelizeMeta ORDER BY createdAt DESC LIMIT 1;
提示:如果你的项目自定义了追踪表名称,可在Sequelize配置文件的
migrationTableName字段找到对应名字,替换上面的SequelizeMeta即可。
找到目标迁移后的回滚操作
确认最后执行的迁移后,你可以这样回滚:
- 快速回滚最后一个迁移(最常用):
sequelize db:migrate:undo - 回滚指定的某个迁移(需知道具体文件名):
sequelize db:migrate:undo --name 20240102000000-add-email-to-users.js
内容的提问来源于stack exchange,提问作者FlyingPumba
相关产品推荐
相关产品推荐

