问题标签 [mongock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1138 浏览

java - Mongock 迁移无法运行 mongockSpringLegacyMigration

我正在尝试运行 mongock 以使用版本控制来处理我的数据库迁移,但是从 mongock 基础架构中得到了一个异常,另外请注意我没有使用 spring-boot 只使用 spring bean 系统,我没有选择使用 spring boot。 ..

Pom 和代码片段:

代码:

Mongo 模板按应有的方式提供 但我收到以下错误,错误是从 mongock 而不是我的变更集引发的,它甚至不执行我的变更集。任何帮助都会有帮助

0 投票
1 回答
699 浏览

java - 用于数据库迁移的 MongoDB 'mongock'

在我的 Spring-Boot 项目中,我正在尝试为 MongoDb 实现数据库迁移,而我对 MongoDB 和 mongock 还是很陌生。
以下是有关错误的一些详细信息以及到目前为止我所做的事情:

  1. 我的 pom 具有以下依赖项:

  2. 我用' @EnableMongock'注释了我的SpringBoot类

  3. 创建了一个 DatabaseChangeLog 类并使用 '@ChangeLog(order = "001")' 进行了注释。在这个类中,我创建了 ' @ChangeSet(order = "001", id = "00.00.00.01", author = "farzain pathan")' 并将少量数据插入 DB。

  4. 在“application.properties”文件中添加了以下行

    mongock.change-logs-scan-package=com.product.target.config

现在,当我构建项目“mvn clean install”时,出现以下错误:

是的,我确实浏览了官方文档,但没有发现任何有用
的东西(跟随 youtube 视频:链接
如果我需要提供更多信息,请告诉我,我真的很挣扎。

0 投票
2 回答
237 浏览

kubernetes - mongock 能否与 kubernetes 副本一起正常工作?

Mongock 看起来很有前途。我们希望在具有多个并行运行的副本的 kubernetes 服务中使用它。

我们希望在部署我们的服务时,第一个副本将获取 mongockLock,并且它的所有 ChangeLogs/ChangeSets 将在其他副本尝试运行它们之前完成。

我们在 kubernetes 环境中运行了一个 mongodb 实例,我们希望 mongock ChangeLogs/ChangeSets 只执行一次。

mongockLock 会保证只有一个副本会运行 ChangeLogs/ChangeSets 来完成吗?

还是我需要启用事务(或其他配置)?

0 投票
3 回答
741 浏览

java - 如何通过 Mongock 向集合中的所有文档添加新字段?

我有一个文档集合,如下所示:

我想为这个集合“Persons”中的每个文档添加一个新字段,我可以在控制台上执行语法,但是由于我需要以某种方式存储更改,所以我们使用的是 Mongock。而且我找不到执行updatetrough的方法MongockTemplate。文档是静态的{ "key" : "value" },我什至不需要变量来传递它们,最终文档应该如下所示:

我不知道如何在里面执行如下查询MongockTemplate

0 投票
1 回答
264 浏览

mongock - 使用持续运行的应用程序运行 mongock 是否安全?

我们有一个在 Kubernetes 中作为 24x7 服务运行的应用程序,我们无法关闭它来运行我们的迁移脚本。我只是想验证 mongock 框架不会干扰我们的应用程序的操作——例如,通过锁定一个集合过长的时间。

我知道这个问题听起来很广泛,因为迁移的影响/效果取决于我们在 ChangeLog/ChangeSets 中编写的代码。

但我想知道 mongock 框架本身是否对 mongo 集合有任何影响,而不是它自己的内部集合(mongockChangeLog 和 mongockLock)

例如,mongok 是否对 mongo 集合持有任何锁,而不是它自己的?

我假设 mongockLock 拥有的锁不会对 mongockChangeLog 以外的任何集合产生影响。

同样,当启用事务时,mongok 是否拥有任何可能影响或影响我们代码拥有的事务的事务?

0 投票
1 回答
247 浏览

spring-boot - 在 docker 上部署时创建 mongock bean 时出错

我正在使用 Mongck 在我的 Spring Boot 应用程序中迁移数据。Spring Boot 应用程序在本地完美运行。但是在docker上运行时,出现如下错误:

在此处查看完整日志

这是 build.gradle 文件中的依赖项:

以及 MongockConfig 类的内容:

我不明白为什么它在 docker 上运行时不起作用。是不是我的mongockInitializingBeanRunner方法不对。

有人请帮助我

0 投票
1 回答
47 浏览

mongodb - 预计何时撤消 Mongock

我开始使用 Mongock 进行 mnongoDB 迁移。

我想知道什么时候可以预期 Mongock 的“撤消”功能?这是一个非常重要的功能

谢谢

0 投票
1 回答
131 浏览

mongodb - Mongock 在 runAlways=true 上插入重复的变更集

我的应用程序使用 mongock 4.1.19,当有一个带有 runAlways=true 的 changeSet 时,会在 dbchangelog 集合中创建重复的条目。

下面的行似乎没有考虑已经执行的情况,可能会导致重复的变更日志条目

有关如何解决此问题的任何指示

https://github.com/cloudyrock/mongock-core/blob/91d15d65a22234f4a2e8d28c759d0641d36750e0/mongock-runner/mongock-runner-core/src/main/java/com/github/cloudyrock/mongock/runner/core/executor/MigrationExecutor。爪哇#L139

下面记录器在启动时记录 - 重新应用 - ChangeEntry{...}

0 投票
1 回答
58 浏览

java - 如何在 mongock 中禁用 throwExceptionIfCannotObtainLock

使用传统的运行 mongock 的方法 - https://www.mongock.io/quick-start#traditional-builder-approach

我们如何将配置传递给此构建器以将“throwExceptionIfCannotObtainLock”设置为 false?

0 投票
2 回答
80 浏览

mongock - 如何减少 mongock 脚本获取锁所需的时间?

我们正在 Kubernetes 中运行我们的 mongock 脚本。我们的服务 pod 有副本,因此在初始化时,第一个副本获取 mongock 锁,而第二个(和第三个)副本等待轮到它们。mongock 锁按预期工作——一次只运行一个脚本——但在释放锁和下一次执行获取它之间存在时间间隔。在我的测试中,这个间隔大约是 3 分钟。我们有多达 30 个副本,因此这将增加我们 pod 的启动时间的相当大的开销。

这个间隔是“死时间”——即我们的脚本在此期间没有做任何工作。我在我们的日志中验证了第一个脚本执行在下一个副本获取锁之前 3 分钟(左右)释放了锁。

maxWaitingForLockMinutes驱动文档中 有一个设置:https: //www.mongock.io/spring#building-time-driver

如果我将其设置为较低的数字(例如 1 分钟),这会减少第二次执行等待获取锁的时间吗?

我们已经使用 Spring 注解配置了 mongock。我已将这些属性添加到我们的 Springapplication.properties文件中(来自 mongock 在线文档的示例),但似乎 mongock 并未读取它们:

Spring application.properties 是这些的正确位置吗?