From 0d8f4c63d433273ac420a81e5adbb3d7e8ca78d3 Mon Sep 17 00:00:00 2001 From: Rasmus Neikes Date: Mon, 26 Aug 2024 00:01:58 +0200 Subject: [PATCH 1/2] setup flyway with separate postgres for history info --- pom.xml | 41 ++++++++++++++++++- .../app/db/migrations/V1__CreateTest.java | 36 ++++++++++++++++ src/main/resources/application.properties | 6 ++- 3 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/stktrk/app/db/migrations/V1__CreateTest.java diff --git a/pom.xml b/pom.xml index 96852c4..a9856cb 100644 --- a/pom.xml +++ b/pom.xml @@ -50,6 +50,14 @@ org.flywaydb flyway-core + + + org.flywaydb + flyway-database-postgresql + 10.4.1 + + + org.springframework.session spring-session-core @@ -140,7 +148,6 @@ - org.opencypher.gremlin @@ -183,6 +190,38 @@ + + org.flywaydb + flyway-maven-plugin + 10.17.2 + + __ + + filesystem:src/main/resources/db/migration + classpath:com/stktrk/app/db/migrations + + + jdbc:postgresql://192.168.178.50:7654/flyway_db + flyway_user + 7e7v55UcYGrY0e3UPYI0qtyMA4YJ1ZkTEaoyZ252GluFkiEMHVT9U5ULS7Rg2rGi + flyway_db + + + + + + + + + org.postgresql + postgresql + 42.7.4 + + + + + + diff --git a/src/main/java/com/stktrk/app/db/migrations/V1__CreateTest.java b/src/main/java/com/stktrk/app/db/migrations/V1__CreateTest.java new file mode 100644 index 0000000..e21fe06 --- /dev/null +++ b/src/main/java/com/stktrk/app/db/migrations/V1__CreateTest.java @@ -0,0 +1,36 @@ +package com.stktrk.app.db.migrations; + +import org.flywaydb.core.api.migration.BaseJavaMigration; +import org.flywaydb.core.api.migration.Context; + +import java.sql.*; +import java.util.Properties; + +public class V1__CreateTest extends BaseJavaMigration { + public void migrate(Context context) throws Exception { + + Class.forName("org.postgresql.Driver"); + + Properties props = new Properties(); + props.setProperty("user", "root"); + props.setProperty("password", "playwithdata"); + props.setProperty("ssl", "false"); + props.setProperty("sslmode", "disable"); + + System.out.println ("migration"); + + + try (Connection connection = DriverManager.getConnection("jdbc:postgresql://192.168.178.50:5432/graph", props)) { + + Statement st = connection.createStatement(); + st.execute("CREATE VERTEX TYPE test"); + + connection.close(); + + } catch (Exception e) { + + System.out.println (e); + + } + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 650f1d8..a11ec6c 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,3 +1,7 @@ spring.application.name=app server.port=9090 -springdoc.swagger-ui.path=/swagger-ui.html \ No newline at end of file +springdoc.swagger-ui.path=/swagger-ui.html + +flyway.user=flyway_user +flyway.password=7e7v55UcYGrY0e3UPYI0qtyMA4YJ1ZkTEaoyZ252GluFkiEMHVT9U5ULS7Rg2rGi +flyway.schemas=flyway_db \ No newline at end of file From 51485e68a2f57af066ca2931e2152333223a0fe4 Mon Sep 17 00:00:00 2001 From: Rasmus Neikes Date: Sat, 31 Aug 2024 21:12:25 +0200 Subject: [PATCH 2/2] setup flyway with separate postgres for history info --- pom.xml | 5 +++-- .../java/com/stktrk/app/AppApplication.java | 2 ++ .../java/com/stktrk/app/ConnectionPool.java | 18 +++++++++++---- .../app/configuration/GraphDbConfig.java | 22 +++++++++++++++++++ ...1__CreateTest.java => V2__CreateTest.java} | 3 +-- src/main/resources/application.properties | 11 +++++++++- 6 files changed, 52 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/stktrk/app/configuration/GraphDbConfig.java rename src/main/java/com/stktrk/app/db/migrations/{V1__CreateTest.java => V2__CreateTest.java} (91%) diff --git a/pom.xml b/pom.xml index a9856cb..009d381 100644 --- a/pom.xml +++ b/pom.xml @@ -197,14 +197,15 @@ __ - filesystem:src/main/resources/db/migration classpath:com/stktrk/app/db/migrations jdbc:postgresql://192.168.178.50:7654/flyway_db flyway_user 7e7v55UcYGrY0e3UPYI0qtyMA4YJ1ZkTEaoyZ252GluFkiEMHVT9U5ULS7Rg2rGi - flyway_db + + flyway_db + diff --git a/src/main/java/com/stktrk/app/AppApplication.java b/src/main/java/com/stktrk/app/AppApplication.java index ff53a1b..5758b86 100644 --- a/src/main/java/com/stktrk/app/AppApplication.java +++ b/src/main/java/com/stktrk/app/AppApplication.java @@ -3,7 +3,9 @@ package com.stktrk.app; import com.arcadedb.gremlin.ArcadeGraph; import com.github.javafaker.Faker; +import com.stktrk.app.configuration.GraphDbConfig; import org.apache.tinkerpop.gremlin.structure.Vertex; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; diff --git a/src/main/java/com/stktrk/app/ConnectionPool.java b/src/main/java/com/stktrk/app/ConnectionPool.java index 51ab12e..bd44d9d 100644 --- a/src/main/java/com/stktrk/app/ConnectionPool.java +++ b/src/main/java/com/stktrk/app/ConnectionPool.java @@ -2,20 +2,30 @@ package com.stktrk.app; import com.arcadedb.gremlin.ArcadeGraph; import com.arcadedb.gremlin.ArcadeGraphFactory; +import com.stktrk.app.configuration.GraphDbConfig; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import javax.annotation.PostConstruct; + +@Component public class ConnectionPool { - static final ArcadeGraphFactory pool; + static ArcadeGraphFactory pool; - static { + @Autowired + GraphDbConfig graphDbConfig; + + @PostConstruct + void init () { try { - pool = ArcadeGraphFactory.withRemote("192.168.178.50", 2480, "graph", "root", "playwithdata"); + pool = ArcadeGraphFactory.withRemote(graphDbConfig.getHost(), graphDbConfig.getHttpPort(), graphDbConfig.getGraphName(), graphDbConfig.getUser(), graphDbConfig.getPassword()); } catch (Exception e) { throw new RuntimeException(e); } } - public static ArcadeGraph getGraph(){ + public static ArcadeGraph getGraph() { return pool.get(); } } diff --git a/src/main/java/com/stktrk/app/configuration/GraphDbConfig.java b/src/main/java/com/stktrk/app/configuration/GraphDbConfig.java new file mode 100644 index 0000000..be5bfc2 --- /dev/null +++ b/src/main/java/com/stktrk/app/configuration/GraphDbConfig.java @@ -0,0 +1,22 @@ +package com.stktrk.app.configuration; + + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Component +@Getter +@Setter +@ConfigurationProperties(prefix = "graph") + +public class GraphDbConfig { + String host; + int httpPort; + int postgresPort; + String graphName; + String user; + String password; + +} diff --git a/src/main/java/com/stktrk/app/db/migrations/V1__CreateTest.java b/src/main/java/com/stktrk/app/db/migrations/V2__CreateTest.java similarity index 91% rename from src/main/java/com/stktrk/app/db/migrations/V1__CreateTest.java rename to src/main/java/com/stktrk/app/db/migrations/V2__CreateTest.java index e21fe06..3d260cb 100644 --- a/src/main/java/com/stktrk/app/db/migrations/V1__CreateTest.java +++ b/src/main/java/com/stktrk/app/db/migrations/V2__CreateTest.java @@ -6,7 +6,7 @@ import org.flywaydb.core.api.migration.Context; import java.sql.*; import java.util.Properties; -public class V1__CreateTest extends BaseJavaMigration { +public class V2__CreateTest extends BaseJavaMigration { public void migrate(Context context) throws Exception { Class.forName("org.postgresql.Driver"); @@ -25,7 +25,6 @@ public class V1__CreateTest extends BaseJavaMigration { Statement st = connection.createStatement(); st.execute("CREATE VERTEX TYPE test"); - connection.close(); } catch (Exception e) { diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index a11ec6c..21d1ca9 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -4,4 +4,13 @@ springdoc.swagger-ui.path=/swagger-ui.html flyway.user=flyway_user flyway.password=7e7v55UcYGrY0e3UPYI0qtyMA4YJ1ZkTEaoyZ252GluFkiEMHVT9U5ULS7Rg2rGi -flyway.schemas=flyway_db \ No newline at end of file +flyway.schemas=flyway_db + + +graph.user=root +graph.password=playwithdata +graph.connection=jdbc:postgresql://192.168.178.50:5432/graph +graph.http-port:2480 +graph.postgres-port:5432 +graph.host=192.168.178.50 +graph.graph-name=graph \ No newline at end of file