0

我有一个关于与 Mongock 一起执行降级的问题。我得到了与 mongock 集成的 Java Spring 应用程序,假设我将应用程序从 v1 升级到 v2。在升级迁移脚本“001”期间执行并迁移数据,因此我可以在“mongockChangeLog”集合中看到新条目。

一天后,客户说存在严重错误并希望将应用程序降级到 v1。问题是客户端添加了一些具有新“类型”的“设备”(在 v2 中支持),这在 v1 中当然不支持。现在,在降级期间,我想删除具有新“类型”的条目,但我不知道该怎么做。我看到 mongock 支持带有注释“RollbackExecution”的方法,但正如我从文档中了解到的那样,它将在不同的场景中被触发。

你有什么想法我应该在哪里放置将删除所有具有新类型的设备的回滚逻辑?

更进一步 - 在降级期间 - 在这种情况下,我应该从“mongockChangeLog”中删除条目还是有更好的解决方案?

4

1 回答 1

0

您可能需要在这里撤消您的 changeLog,因此无论您的 changeLog 做了什么,只需恢复它即可。

你基本上会在撤消模式下运行 mongock,告诉你想要去什么 changeId。

正如您在文档中所读到的,RollbackExecution它用于两种情况,用于手动回滚(当事务不可用时)和用于恢复操作,例如undo.

幸运的是,我们已经准备好了(加上其他操作),可以使用 CLI 执行。它是专业套件的一部分,目前处于测试阶段且免费。

如果您有兴趣,可以向此处发送电子邮件,我们可以提供访问权限。

于 2021-12-10T11:26:08.687 回答