如何使用 sequelize-cli 删除迁移
How to delete a migration using sequalize-cli
我手动删除了一个迁移文件名20171125081136-create-task.js
。
删除迁移文件后,我运行这个命令
db:migrate:undo:all
虽然 运行 此命令在终端中出现错误:
ERROR: Unable to find migration: 20171125081136-create-task.js
.
由于这个错误,我卡住了,无法撤消存在的其他迁移文件。
在您的情况下,您必须重新添加已删除的迁移文件,因为 Sequelize 需要它来回滚您的迁移。如果没有,您可以添加一个名为 20171125081136-create-task.js
的空白迁移文件。该文件必须有一个 down
函数,returns 一个成功的承诺。
'use strict';
module.exports = {
up: function(queryInterface, Sequelize) {
return Promise.resolve()
},
down: function(queryInterface) {
return Promise.resolve()
}
};
接下来,如果您要删除迁移:
- 撤消最近的迁移:
node_modules/.bin/sequelize db:migrate:undo
- 删除最新的迁移文件
我遇到了同样的问题,我是这样解决的:
Sequelize 将迁移历史存储在单独的 table 中,例如 "SequelizeMeta"。如果你删除了一个迁移文件,之后不想再使用它,你可以从SequelizeMeta中移除你的迁移文件对应的迁移行table.
希望对您有所帮助!
我遇到了同样的问题,但找到了解决办法。
当我们使用 sequelize 创建迁移时,它会在数据库中创建一个 SequelizeMeta table。所以你能做的就是。
select * from SequelizeMeta
- 这将为您提供所有迁移的列表。
- 现在 select 个您要删除的迁移。
- 运行 查询删除 -
delete from table_name [where clause]
解决了我的问题希望也能解决你的问题。
编码愉快。
我的出路是从 SequelizeMeta
table 中删除一条记录。以下是我完成的步骤:
SELECT ALL FROM "SequelizeMeta"
SequelizeMeta
table有一列name
,其中包含有关您在应用程序中进行的所有迁移的记录。
- 删除您不再需要的迁移。
DELETE FROM "SequelizeMeta" WHERE name='migration'
我希望这对某人有所帮助。
我手动删除了一个迁移文件名20171125081136-create-task.js
。
删除迁移文件后,我运行这个命令
db:migrate:undo:all
虽然 运行 此命令在终端中出现错误:
ERROR: Unable to find migration: 20171125081136-create-task.js
.
由于这个错误,我卡住了,无法撤消存在的其他迁移文件。
在您的情况下,您必须重新添加已删除的迁移文件,因为 Sequelize 需要它来回滚您的迁移。如果没有,您可以添加一个名为 20171125081136-create-task.js
的空白迁移文件。该文件必须有一个 down
函数,returns 一个成功的承诺。
'use strict';
module.exports = {
up: function(queryInterface, Sequelize) {
return Promise.resolve()
},
down: function(queryInterface) {
return Promise.resolve()
}
};
接下来,如果您要删除迁移:
- 撤消最近的迁移:
node_modules/.bin/sequelize db:migrate:undo
- 删除最新的迁移文件
我遇到了同样的问题,我是这样解决的:
Sequelize 将迁移历史存储在单独的 table 中,例如 "SequelizeMeta"。如果你删除了一个迁移文件,之后不想再使用它,你可以从SequelizeMeta中移除你的迁移文件对应的迁移行table.
希望对您有所帮助!
我遇到了同样的问题,但找到了解决办法。 当我们使用 sequelize 创建迁移时,它会在数据库中创建一个 SequelizeMeta table。所以你能做的就是。
select * from SequelizeMeta
- 这将为您提供所有迁移的列表。- 现在 select 个您要删除的迁移。
- 运行 查询删除 -
delete from table_name [where clause]
解决了我的问题希望也能解决你的问题。 编码愉快。
我的出路是从 SequelizeMeta
table 中删除一条记录。以下是我完成的步骤:
SELECT ALL FROM "SequelizeMeta"
SequelizeMeta
table有一列name
,其中包含有关您在应用程序中进行的所有迁移的记录。
- 删除您不再需要的迁移。
DELETE FROM "SequelizeMeta" WHERE name='migration'
我希望这对某人有所帮助。