gpt4 book ai didi

mongodb - Spring boot 嵌入式 MongoDb 数据预填充

转载 作者:可可西里 更新时间:2023-11-01 09:34:12 30 4
gpt4 key购买 nike

我想知道有没有类似Flyway的工具可以协助 mongodb 的数据库初始化/迁移。我的一些想法是

  1. 我用过flapdoodle作为带有 springboot 的嵌入式 mongo。这工作正常,但我需要手动将数据放入其中。
  2. 对于使用 mongo 数据库的 Junit 测试,我使用 nosqlunit .这与 Fongo(Fake mongo)完美配合。它支持从 json 文件读取数据并在启动期间用数据预填充数据库。但这仅适用于 junit,因为这是 JUnit 扩展。

我正在寻找的是以上两者的混合,一个嵌入式 mongo,它不仅适用于 JUnit,还可以从给定的 json 中预填充数据(类似于 Flyway 中的 V1__init.sql)
有没有这样的工具?

最佳答案

您也可以为此使用 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一样,它也维护了schema版本表,所以相同的变更集不会在相同的环境中再次运行。

关于mongodb - Spring boot 嵌入式 MongoDb 数据预填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43341331/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com