问题标签 [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.
java - Mongock 迁移无法运行 mongockSpringLegacyMigration
我正在尝试运行 mongock 以使用版本控制来处理我的数据库迁移,但是从 mongock 基础架构中得到了一个异常,另外请注意我没有使用 spring-boot 只使用 spring bean 系统,我没有选择使用 spring boot。 ..
Pom 和代码片段:
代码:
Mongo 模板按应有的方式提供 但我收到以下错误,错误是从 mongock 而不是我的变更集引发的,它甚至不执行我的变更集。任何帮助都会有帮助
java - 用于数据库迁移的 MongoDB 'mongock'
在我的 Spring-Boot 项目中,我正在尝试为 MongoDb 实现数据库迁移,而我对 MongoDB 和 mongock 还是很陌生。
以下是有关错误的一些详细信息以及到目前为止我所做的事情:
我的 pom 具有以下依赖项:
我用'
@EnableMongock
'注释了我的SpringBoot类创建了一个 DatabaseChangeLog 类并使用 '@ChangeLog(order = "001")' 进行了注释。在这个类中,我创建了 '
@ChangeSet(order = "001", id = "00.00.00.01", author = "farzain pathan")
' 并将少量数据插入 DB。在“application.properties”文件中添加了以下行
mongock.change-logs-scan-package=com.product.target.config
现在,当我构建项目“mvn clean install”时,出现以下错误:
是的,我确实浏览了官方文档,但没有发现任何有用
的东西(跟随 youtube 视频:链接)
如果我需要提供更多信息,请告诉我,我真的很挣扎。
kubernetes - mongock 能否与 kubernetes 副本一起正常工作?
Mongock 看起来很有前途。我们希望在具有多个并行运行的副本的 kubernetes 服务中使用它。
我们希望在部署我们的服务时,第一个副本将获取 mongockLock,并且它的所有 ChangeLogs/ChangeSets 将在其他副本尝试运行它们之前完成。
我们在 kubernetes 环境中运行了一个 mongodb 实例,我们希望 mongock ChangeLogs/ChangeSets 只执行一次。
mongockLock 会保证只有一个副本会运行 ChangeLogs/ChangeSets 来完成吗?
还是我需要启用事务(或其他配置)?
java - 如何通过 Mongock 向集合中的所有文档添加新字段?
我有一个文档集合,如下所示:
我想为这个集合“Persons”中的每个文档添加一个新字段,我可以在控制台上执行语法,但是由于我需要以某种方式存储更改,所以我们使用的是 Mongock。而且我找不到执行update
trough的方法MongockTemplate
。文档是静态的{ "key" : "value" }
,我什至不需要变量来传递它们,最终文档应该如下所示:
我不知道如何在里面执行如下查询MongockTemplate
:
mongock - 使用持续运行的应用程序运行 mongock 是否安全?
我们有一个在 Kubernetes 中作为 24x7 服务运行的应用程序,我们无法关闭它来运行我们的迁移脚本。我只是想验证 mongock 框架不会干扰我们的应用程序的操作——例如,通过锁定一个集合过长的时间。
我知道这个问题听起来很广泛,因为迁移的影响/效果取决于我们在 ChangeLog/ChangeSets 中编写的代码。
但我想知道 mongock 框架本身是否对 mongo 集合有任何影响,而不是它自己的内部集合(mongockChangeLog 和 mongockLock)
例如,mongok 是否对 mongo 集合持有任何锁,而不是它自己的?
我假设 mongockLock 拥有的锁不会对 mongockChangeLog 以外的任何集合产生影响。
同样,当启用事务时,mongok 是否拥有任何可能影响或影响我们代码拥有的事务的事务?
spring-boot - 在 docker 上部署时创建 mongock bean 时出错
我正在使用 Mongck 在我的 Spring Boot 应用程序中迁移数据。Spring Boot 应用程序在本地完美运行。但是在docker上运行时,出现如下错误:
在此处查看完整日志
这是 build.gradle 文件中的依赖项:
以及 MongockConfig 类的内容:
我不明白为什么它在 docker 上运行时不起作用。是不是我的mongockInitializingBeanRunner
方法不对。
有人请帮助我
mongodb - 预计何时撤消 Mongock
我开始使用 Mongock 进行 mnongoDB 迁移。
我想知道什么时候可以预期 Mongock 的“撤消”功能?这是一个非常重要的功能
谢谢
mongodb - Mongock 在 runAlways=true 上插入重复的变更集
我的应用程序使用 mongock 4.1.19,当有一个带有 runAlways=true 的 changeSet 时,会在 dbchangelog 集合中创建重复的条目。
下面的行似乎没有考虑已经执行的情况,可能会导致重复的变更日志条目
有关如何解决此问题的任何指示
下面记录器在启动时记录 - 重新应用 - ChangeEntry{...}
java - 如何在 mongock 中禁用 throwExceptionIfCannotObtainLock
使用传统的运行 mongock 的方法 - https://www.mongock.io/quick-start#traditional-builder-approach
我们如何将配置传递给此构建器以将“throwExceptionIfCannotObtainLock”设置为 false?
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 是这些的正确位置吗?