如果我从typeorm迁移表中删除一条记录,会发生什么



TypeORM创建的迁移表是如何使用的?

首先,我想它用于跟踪数据库中已经执行的所有迁移。

如果我要删除迁移文件;向下";撤消迁移的查询,以及从迁移(或migrationTableName设置为什么(表中删除其关联记录,会不会像迁移一开始就不存在一样?

typeorm使用migrations表来跟踪哪些迁移已经运行,因此它会跳过这些迁移,只运行较新的迁移。

如果从该表中删除了一条记录,则下次执行typeorm migration:run时,如果该记录仍存在于代码库中,则与该已删除记录相关联的迁移将再次运行。

一旦我能够再次找到答案,我会用源代码更新它,但在提交代码之前,我在本地测试迁移时也使用过多次(运行typeorm migration:run,删除migrations中的记录,运行typeorm migration:run,并再次看到删除的迁移运行(。

额外内容:有一种情况,我们进行了一次代价高昂的迁移,该迁移在本地运行良好,提交并在沙箱环境中成功运行,但在生产中尝试时却导致死锁和失败(表大小要大得多(。

我们决定恢复引入迁移的提交,重写它,然后重试。

由于某些原因,我不想讨论,我们不得不手动执行SQL来撤消沙箱中的迁移,但我们决定让migrations表中的记录为(另一个具有相同名称的迁移仍将附加不同的时间戳,因此名称是唯一的(,因为我们认为将其留在那里没有害处,它还可以防止这种迁移再次运行,以防有人搞砸了git历史,无意中在代码库中再次引入了这种迁移。但是,我确实相信typeorm migration:revert在恢复迁移时确实删除了与上次运行迁移相关的记录