我在为我的项目正确配置 mongock 时遇到问题。
我已添加到 pom.xml 依赖项:
<dependencies>
<dependency>
<groupId>io.mongock</groupId>
<artifactId>mongock-springboot</artifactId>
<version>5.2.2</version>
</dependency>
<dependency>
<groupId>io.mongock</groupId>
<artifactId>mongodb-springdata-v3-driver</artifactId>
<version>5.2.2</version>
</dependency>
...
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.mongock</groupId>
<artifactId>mongock-driver-mongodb-bom</artifactId>
<version>5.2.2</version>
<type>pom</type>
</dependency>
...
</dependencies>
</dependencyManagement>
Run Code Online (Sandbox Code Playgroud)
我在ApplicationClass上添加了注释:@EnableMongock
在 application.yml 中我添加了配置:
mongock:
migration-scan-package:
- com.test.project.config.dbmigrations
enabled: true
Run Code Online (Sandbox Code Playgroud)
文档说这个设置应该足够了,但是当我运行应用程序时出现错误:
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of method getBuilder in io.mongock.runner.springboot.config.MongockContext required a bean of type 'io.mongock.driver.api.driver.ConnectionDriver' that could not be found.
Action:
Consider defining a bean of type 'io.mongock.driver.api.driver.ConnectionDriver' in your configuration.
Run Code Online (Sandbox Code Playgroud)
你知道如何修复它吗?提前致谢。
我计划将基于 mongodb 的迁移工具集成到我的 Spring Boot 应用程序中,该应用程序在项目中具有 spring-data 依赖项。我发现主要的两个库 1) Mongobee 2) Mongock。
我需要一些反馈,我应该选择哪一个?提前致谢!
Mongock看起来很有前途。我们希望在具有多个并行运行的副本的 kubernetes 服务中使用它。
我们希望当我们的服务部署时,第一个副本将获取 mongockLock,并且其所有 ChangeLogs/ChangeSets 将在其他副本尝试运行它们之前完成。
我们在 kubernetes 环境中运行着一个 mongodb 实例,并且我们希望 mongock ChangeLogs/ChangeSets 仅执行一次。
mongockLock 能否保证只有一个副本才能完成 ChangeLogs/ChangeSets?
或者我是否需要启用交易(或其他一些配置)?