我想知道是否有像Flyway这样的工具可以帮助mongodb进行数据库初始化/迁移。我的一些想法是
我正在寻找的是上述两者的混合,一个嵌入式mongo,它不仅可以与JUnit一起使用,还可以预先填充给定json的数据(类似于Flyway中的V1__init.sql)
有没有这样的工具?
答案 0 :(得分:3)
您也可以使用Mongobee。如果在应用程序加载时运行更改集。
Maven依赖
<dependency>
<groupId>com.github.mongobee</groupId>
<artifactId>mongobee</artifactId>
</dependency>
您需要在上下文xml文件中为Mongobee创建bean
<bean id="mongobee" class="com.github.mongobee.Mongobee">
<constructor-arg ref="mongo"/>
<property name="dbName" value="${mongo.databaseName}"/>
<property name="enabled" value="true"/>
<property name="changeLogsScanPackage" value="basepackagewherechangesetispresent"/>
现在添加变更集类
@ChangeLog(order = "1")
public class DatabaseChangeLog {
@ChangeSet(order = "101", id = "somelogicalnameforthischangeset", author = "nameofpersonwhodidthischange")
public void setupSeedData(MongoTemplate mongoTemplate) {
// run your datasetup, prefill,migration here.
}
就像flyway一样,它也维护着架构版本表,因此相同的更改集不会在同一环境中再次运行。
答案 1 :(得分:1)
答案 2 :(得分:-1)
您可以使用flapdoodle
在测试期间导入JSON数据在此处查看类似问题的答案:Import JSON file in Mongo db using Spring Data Embedded Mongo