From 43473ebffc41ddd07e0921ce5aff519ebd1ec949 Mon Sep 17 00:00:00 2001 From: Rasmus Neikes Date: Sun, 12 Jan 2025 15:08:37 +0100 Subject: [PATCH] added base V and E types --- .../integration/flyway/ConnectionPool.java | 18 ++++++++----- .../flyway/migrations/V3__427__BaseTypes.java | 25 +++++++++++++++++++ 2 files changed, 37 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/stktrk/auth/integration/flyway/migrations/V3__427__BaseTypes.java diff --git a/src/main/java/com/stktrk/auth/integration/flyway/ConnectionPool.java b/src/main/java/com/stktrk/auth/integration/flyway/ConnectionPool.java index 5cc419b..4d2a956 100644 --- a/src/main/java/com/stktrk/auth/integration/flyway/ConnectionPool.java +++ b/src/main/java/com/stktrk/auth/integration/flyway/ConnectionPool.java @@ -1,5 +1,8 @@ package com.stktrk.auth.integration.flyway; +import com.arcadedb.database.Database; +import com.arcadedb.database.DatabaseFactory; +import com.arcadedb.event.BeforeRecordCreateListener; import com.arcadedb.gremlin.ArcadeGraph; import com.arcadedb.gremlin.ArcadeGraphFactory; import com.stktrk.auth.integration.configuration.types.GraphDbConfig; @@ -9,6 +12,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; +import java.sql.Timestamp; +import java.util.Date; /** * provides connection pool for arcade DB @@ -27,16 +32,17 @@ public class ConnectionPool { */ @PostConstruct void init() { - pool = ArcadeGraphFactory.withRemote(graphDbConfig.getHost(), - graphDbConfig.getHttpPort(), - graphDbConfig.getGraphName(), - graphDbConfig.getUser(), - graphDbConfig.getPassword()); + pool = ArcadeGraphFactory.withRemote(graphDbConfig.getHost(), + graphDbConfig.getHttpPort(), + graphDbConfig.getGraphName(), + graphDbConfig.getUser(), + graphDbConfig.getPassword()); } /** * Provides DB connection from pool - * @return graphFactory to run queries against + * + * @return graphFactory to run queries against */ @Nonnull public static ArcadeGraph getGraph() { diff --git a/src/main/java/com/stktrk/auth/integration/flyway/migrations/V3__427__BaseTypes.java b/src/main/java/com/stktrk/auth/integration/flyway/migrations/V3__427__BaseTypes.java new file mode 100644 index 0000000..489a957 --- /dev/null +++ b/src/main/java/com/stktrk/auth/integration/flyway/migrations/V3__427__BaseTypes.java @@ -0,0 +1,25 @@ +package com.stktrk.auth.integration.flyway.migrations; + +import com.stktrk.auth.integration.configuration.types.GraphDbConfig; +import com.stktrk.auth.integration.flyway.MigrationWrapper; +import jakarta.annotation.Nonnull; +import lombok.EqualsAndHashCode; +import lombok.Value; +import org.flywaydb.core.api.migration.BaseJavaMigration; +import org.flywaydb.core.api.migration.Context; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@EqualsAndHashCode(callSuper = true) +@Component +@Value +public class V3__427__BaseTypes extends BaseJavaMigration implements MigrationWrapper { + @Nonnull + @Autowired + GraphDbConfig graphDbConfig; + + public void migrate(@Nonnull Context context) throws Exception { + this.executeQuery(graphDbConfig,"CREATE VERTEX TYPE V IF NOT EXISTS; CREATE PROPERTY V.createdOn DATETIME (MANDATORY true, notnull true); CREATE PROPERTY V.createdBy STRING (MANDATORY true); CREATE PROPERTY V.changedOn DATETIME; CREATE PROPERTY V.changedBy STRING; CREATE EDGE TYPE E IF NOT EXISTS; CREATE PROPERTY E.createdOn DATETIME (MANDATORY true, notnull true); CREATE PROPERTY E.createdBy STRING (MANDATORY true); CREATE PROPERTY E.changedOn DATETIME; CREATE PROPERTY E.changedBy STRING; ALTER TYPE Account SUPERTYPE +V; Alter Type Role SUPERTYPE +V; Alter Type hasRole SUPERTYPE +E"); + } +} +