NPM TypeORM - 修改/删除迁移文件后出现“错误:重复迁移”

lan*_*445 3 javascript database migration npm typeorm

我之前使用 向现有表添加一列npm run migration:generate <filename>

然而,我后来意识到我拼错了列名,所以我想重命名该列。(showCommission -> showCommission)

由于只是在本地环境中,我修改了迁移文件上的列名并运行npm run migration:run

发生重复迁移错误,这是日志。

**addShowCommissionToCorporationProfile1643792138368 是修改后的导出类名称。

类型迁移:运行

查询: SELECT * FROM INFORMATION_SCHEMA. COLUMNSWHERE TABLE_SCHEMA= 'abc' AND TABLE_NAME= '迁移'

查询: SELECT * FROM abc. migrations migrations按描述id排序

迁移运行期间出错:
错误:重复迁移:addShowCommissionToCorporationProfile1643792138368

at MigrationExecutor.checkForDuplicateMigrations
at MigrationExecutor.getMigrations
at MigrationExecutor.<anonymous> 
at step 
at Object.next 
at fulfilled 
at processTicksAndRejections npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! abc-api@1.0.0 migration:run: `typeorm migration:run`
Run Code Online (Sandbox Code Playgroud)

npm 错误!退出状态 1 npm ERR!npm 错误!abc-api@1.0.0 迁移失败:运行脚本。npm 错误!这可能不是 npm 的问题。上面可能有额外的日志输出。

之后我尝试恢复npm run migration:revert,但发生了完全相同的错误。因此,我将迁移文件更改回其初始状态,并使用npm run migration:generate --filename创建迁移文件来重命名列,但仍然出现相同的错误。最后,我删除了新创建的迁移文件并仅运行原始迁移文件(初始状态)并再次运行迁移,但仍然出现相同的错误。

谁能告诉我如何解决这个烂摊子?

我只是想重命名该列...

如果您需要任何其他信息或有关情况的更多说明,请告诉我。

感谢您的所有帮助。

小智 10

我在 NestJS 项目上遇到了同样的错误。我的解决方案是删除 dist 文件夹并重建项目,然后我可以运行新的迁移。

说明:我们最近刚刚更改了项目结构,并将迁移移至不同的文件夹。然而,Nest 有一个奇怪的“bug”:当我们移动文件时,它会重建我们移动文件的项目部分,但不一定是我们删除文件的项目部分。因此在这种情况下会出现重复迁移。当我们重建整个过程时,构建中不再有重复的迁移。