2017-04-11 78 views
1

我想知道是否有像Flyway這樣的工具可以幫助mongodb進行數據庫初始化/遷移。我的一些想法是Spring boot預裝嵌入式MongoDb數據

  1. 我已經使用flapdoodle作爲嵌入式芒果彈簧。這工作正常,但是,我需要手動將數據放入它。
  2. 對於使用mongo db的Junit測試,我使用nosqlunit。這與Fongo(假芒戈)完美無瑕。它支持從json文件中讀取數據,並在啓動過程中用數據預先填充數據庫。但是這隻適用於junit,因爲這是一個JUnit擴展。

我所尋找的是以上兩者的混合,其工作不僅與JUnit和可預先填入從給定的JSON數據(類似於V1__init.sql在遷飛路線)嵌入式蒙戈
有任何這樣的工具?

回答

1

您也可以使用Mongobee。如果在應用程序加載時運行更改集

Maven的依賴

<dependency> 
    <groupId>com.github.mongobee</groupId> 
    <artifactId>mongobee</artifactId> 
</dependency> 

您需要在您的上下文xml文件來創建Mongobee豆

<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一樣,它也維護模式版本表,因此同一個更改集不會在同一個環境中再次運行。

+0

那很好。會試一試。謝謝 – pvpkiran

相關問題