0

我有 2 个 Java 服务器实例与 MongoDB 数据库一起在 docker 中运行。我们使用 mongock 来迁移运行良好的 MongoDB 数据。我开发了一项功能,用户可以从一个实例从 MongoDB 导出特定数据,并可以导入另一个实例。当上述实例不在同一版本上时,就会出现问题,

  1. 源实例版本大于目标实例:无法导入-导出,因为源实例可能具有尚未引入目标实例的增强功能
  2. 源实例低于目标实例:此导入的数据应自动迁移到最新版本,以便目标实例可以理解它

我正在寻找专门解决第二个案例。我试图寻找这种特定的用例,但找不到任何相关的例子。

4

1 回答 1

0

我不完全明白你为什么这样做。你能提供更多的上下文吗?为什么需要从不同的实例迁移到不同的实例?为什么不让它们同步(代码和数据),这实际上是 Mongock 的主要动机?

但是,如果您真的被迫这样做,我想理解这一点,为什么不禁止反向进口。所以用户只能从更新的数据源导入数据,反之则不行。

如果你能做到这一点,你可以通过始终以向后兼容的方式升级数据来修复它。

话虽如此,我真的认为完整的方法是不正确的,但我没有上下文来评估场景和促使你这样做的原因。

于 2021-08-24T09:08:43.637 回答