diff --git a/spring/spring-boot-data-mongodb/pom.xml b/spring/spring-boot-data-mongodb/pom.xml
index ec3b35d..01acb3f 100644
--- a/spring/spring-boot-data-mongodb/pom.xml
+++ b/spring/spring-boot-data-mongodb/pom.xml
@@ -50,6 +50,18 @@
spring-boot-devtools
true
+
+
+ com.github.cloudyrock.mongock
+ mongock-spring-v5
+ 4.1.17
+
+
+
+ com.github.cloudyrock.mongock
+ mongodb-springdata-v3-driver
+ 4.1.17
+
@@ -79,4 +91,4 @@
-
\ No newline at end of file
+
diff --git a/spring/spring-boot-data-mongodb/src/main/java/org/jnosql/demo/endgame/spring/mongodb/SpringBootDataMongodbApplication.java b/spring/spring-boot-data-mongodb/src/main/java/org/jnosql/demo/endgame/spring/mongodb/SpringBootDataMongodbApplication.java
index 9b47ba4..45bd3b4 100644
--- a/spring/spring-boot-data-mongodb/src/main/java/org/jnosql/demo/endgame/spring/mongodb/SpringBootDataMongodbApplication.java
+++ b/spring/spring-boot-data-mongodb/src/main/java/org/jnosql/demo/endgame/spring/mongodb/SpringBootDataMongodbApplication.java
@@ -1,7 +1,12 @@
package org.jnosql.demo.endgame.spring.mongodb;
+import com.github.cloudyrock.mongock.driver.mongodb.springdata.v3.SpringDataMongo3Driver;
+import com.github.cloudyrock.spring.v5.MongockSpring5;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.Bean;
+import org.springframework.data.mongodb.core.MongoTemplate;
@SpringBootApplication
public class SpringBootDataMongodbApplication {
@@ -9,4 +14,16 @@ public class SpringBootDataMongodbApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(SpringBootDataMongodbApplication.class, args);
}
+
+ @Bean
+ public MongockSpring5.MongockInitializingBeanRunner mongockInitializingBeanRunner(
+ ApplicationContext springContext,
+ MongoTemplate mongoTemplate){
+ return MongockSpring5.builder()
+ .setDriver(SpringDataMongo3Driver
+ .withDefaultLock(mongoTemplate))
+ .addChangeLogsScanPackage("org.jnosql.demo.endgame.spring.mongodb.changelogs")
+ .setSpringContext(springContext)
+ .buildInitializingBeanRunner();
+ }
}
diff --git a/spring/spring-boot-data-mongodb/src/main/java/org/jnosql/demo/endgame/spring/mongodb/changelogs/DatabaseChangelog.java b/spring/spring-boot-data-mongodb/src/main/java/org/jnosql/demo/endgame/spring/mongodb/changelogs/DatabaseChangelog.java
new file mode 100644
index 0000000..c3381fd
--- /dev/null
+++ b/spring/spring-boot-data-mongodb/src/main/java/org/jnosql/demo/endgame/spring/mongodb/changelogs/DatabaseChangelog.java
@@ -0,0 +1,37 @@
+package org.jnosql.demo.endgame.spring.mongodb.changelogs;
+
+import com.github.cloudyrock.mongock.ChangeLog;
+import com.github.cloudyrock.mongock.ChangeSet;
+import com.mongodb.client.MongoDatabase;
+import org.bson.Document;
+import org.jnosql.demo.endgame.spring.mongodb.model.God;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+@ChangeLog
+public class DatabaseChangelog {
+
+ @ChangeSet(order = "001", id = "insertTestDataToDatabase", author = "Tegridy")
+ public void initData(MongoDatabase db){
+
+ List gods = new ArrayList<>();
+ gods.add(createMongoDocument(new God("Zeus", "justice")));
+ gods.add(createMongoDocument(new God("Hera", "childbirth")));
+ gods.add(createMongoDocument(new God("Poseidon", "hurricane")));
+ gods.add(createMongoDocument(new God("Demeter", "harvest")));
+ gods.add(createMongoDocument(new God("Athena", "wisdom")));
+ gods.add(createMongoDocument(new God("Apollo", "light")));
+ gods.add(createMongoDocument(new God("John Doe", "no power")));
+ gods.add(createMongoDocument(new God("Sally Doe", "no power")));
+
+ db.getCollection("gods").insertMany(gods);
+ }
+
+ private Document createMongoDocument(God god) {
+ return new Document()
+ .append("name", god.getName())
+ .append("power", god.getPower());
+ }
+}