DM: Introduce Postgres and Script generated Schema
authorRishi Chail <rishi.chail@est.tech>
Thu, 8 Oct 2020 11:33:33 +0000 (12:33 +0100)
committerRishi Chail <rishi.chail@est.tech>
Thu, 8 Oct 2020 14:53:22 +0000 (15:53 +0100)
Jira ID:CCSDK-2869
Link: https://jira.onap.org/browse/CCSDK-2869
Signed-off-by: Rishi Chail <rishi.chail@est.tech>
Change-Id: I54007daf1ad2491d49142168e8cb44e6eb2da8b9

cps/cps-rest/src/main/resources/application.yml
cps/cps-rest/src/main/resources/schema.sql [new file with mode: 0644]
cps/cps-ri/pom.xml

index a8a4690..5cfa974 100644 (file)
@@ -2,23 +2,25 @@ server:
   port: 8080\r
 \r
 spring:\r
-  main:\r
-    banner-mode: "off"\r
-  # for POC only, later this should move to cpi-ri module\r
-  jpa:\r
-    hibernate:\r
-    ddl-auto: create\r
-    open-in-view: false\r
-    properties:\r
-      hibernate:\r
-        enable_lazy_load_no_trans: true\r
-  datasource:\r
-    url: jdbc:mariadb://${DB_HOST}:3306/${DB_NAME}\r
-    username: ${USERNAME}\r
-    password: ${PWD}\r
-    driverClassName: org.mariadb.jdbc.Driver\r
+    main:\r
+        banner-mode: "off"\r
+# for POC only, later this should move to cpi-ri module\r
+    jpa:\r
+        ddl-auto: create\r
+        open-in-view: false\r
+        properties:\r
+            hibernate:\r
+                enable_lazy_load_no_trans: true\r
+                dialect: org.hibernate.dialect.PostgreSQLDialect\r
+\r
+    datasource:\r
+        url: jdbc:postgresql://${DB_HOST}:5432/cpsdb\r
+        username: ${DB_USERNAME}\r
+        password: ${DB_PASSWORD}\r
+        driverClassName: org.postgresql.Driver\r
+        initialization-mode: always\r
 \r
 logging:\r
-  level:\r
-    org:\r
-      springframework: INFO
\ No newline at end of file
+    level:\r
+        org:\r
+            springframework: INFO\r
diff --git a/cps/cps-rest/src/main/resources/schema.sql b/cps/cps-rest/src/main/resources/schema.sql
new file mode 100644 (file)
index 0000000..446d6e5
--- /dev/null
@@ -0,0 +1,63 @@
+/*  Initialisation script for CPS.\r
+\r
+To be moved to cps-ri in Honolulu.  */\r
+\r
+\r
+CREATE TABLE IF NOT EXISTS RELATION_TYPE\r
+(\r
+    RELATION_TYPE TEXT NOT NULL,\r
+    ID SERIAL PRIMARY KEY\r
+);\r
+\r
+CREATE TABLE IF NOT EXISTS DATASPACE\r
+(\r
+    ID SERIAL PRIMARY KEY,\r
+    NAME TEXT NOT NULL,\r
+    CONSTRAINT "UQ_NAME" UNIQUE (NAME)\r
+);\r
+\r
+CREATE TABLE IF NOT EXISTS SCHEMA_NODE\r
+(\r
+    SCHEMA_NODE_IDENTIFIER TEXT NOT NULL,\r
+    ID SERIAL PRIMARY KEY\r
+);\r
+\r
+CREATE TABLE IF NOT EXISTS MODULE_SET\r
+(\r
+    MODULE_SET_REFERENCE TEXT NOT NULL,\r
+    ID SERIAL PRIMARY KEY\r
+);\r
+\r
+CREATE TABLE IF NOT EXISTS FRAGMENT\r
+(\r
+    ID BIGSERIAL PRIMARY KEY,\r
+    XPATH TEXT NOT NULL,\r
+    DATASPACE_ID INTEGER NOT NULL REFERENCES DATASPACE(ID),\r
+    ATTRIBUTES JSONB,\r
+    ANCHOR_ID BIGINT REFERENCES FRAGMENT(ID),\r
+    PARENT_ID BIGINT REFERENCES FRAGMENT(ID),\r
+    MODULE_SET_ID INTEGER REFERENCES MODULE_SET(ID),\r
+    SCHEMA_NODE_ID INTEGER REFERENCES SCHEMA_NODE(ID)\r
+);\r
+\r
+CREATE TABLE IF NOT EXISTS RELATION\r
+(\r
+    FROM_FRAGMENT_ID BIGINT NOT NULL REFERENCES FRAGMENT(ID),\r
+    TO_FRAGMENT_ID   BIGINT NOT NULL REFERENCES FRAGMENT(ID),\r
+    RELATION_TYPE_ID  INTEGER NOT NULL REFERENCES RELATION_TYPE(ID),\r
+    FROM_REL_XPATH TEXT NOT NULL,\r
+    TO_REL_XPATH TEXT NOT NULL,\r
+    CONSTRAINT RELATION_PKEY PRIMARY KEY (TO_FRAGMENT_ID, FROM_FRAGMENT_ID, RELATION_TYPE_ID)\r
+);\r
+\r
+CREATE INDEX  IF NOT EXISTS "FKI_FRAGMENT_DATASPACE_ID_FK"     ON FRAGMENT USING BTREE(DATASPACE_ID) ;\r
+CREATE INDEX  IF NOT EXISTS "FKI_FRAGMENT_MODULE_SET_ID_FK"    ON FRAGMENT USING BTREE(MODULE_SET_ID) ;\r
+CREATE INDEX  IF NOT EXISTS "FKI_FRAGMENT_PARENT_ID_FK"        ON FRAGMENT USING BTREE(PARENT_ID) ;\r
+CREATE INDEX  IF NOT EXISTS "FKI_FRAGMENT_ANCHOR_ID_FK"        ON FRAGMENT USING BTREE(ANCHOR_ID) ;\r
+CREATE INDEX  IF NOT EXISTS "PERF_SCHEMA_NODE_SCHEMA_NODE_ID"  ON SCHEMA_NODE USING BTREE(SCHEMA_NODE_IDENTIFIER) ;\r
+CREATE INDEX  IF NOT EXISTS "FKI_SCHEMA_NODE_ID_TO_ID"         ON FRAGMENT USING BTREE(SCHEMA_NODE_ID) ;\r
+CREATE INDEX  IF NOT EXISTS "FKI_RELATION_TYPE_ID_FK"          ON RELATION USING BTREE(RELATION_TYPE_ID);\r
+CREATE INDEX  IF NOT EXISTS "FKI_RELATIONS_FROM_ID_FK"         ON RELATION USING BTREE(FROM_FRAGMENT_ID);\r
+CREATE INDEX  IF NOT EXISTS "FKI_RELATIONS_TO_ID_FK"           ON RELATION USING BTREE(TO_FRAGMENT_ID);\r
+CREATE INDEX  IF NOT EXISTS "PERF_MODULE_SET_MODULE_SET_REFERENCE" ON MODULE_SET USING BTREE(MODULE_SET_REFERENCE) ;\r
+CREATE UNIQUE INDEX  IF NOT EXISTS "UQ_FRAGMENT_XPATH"ON FRAGMENT USING btree(xpath COLLATE pg_catalog."default" text_pattern_ops, dataspace_id);
\ No newline at end of file
index 781f8e8..334e476 100644 (file)
@@ -1,48 +1,43 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"\r
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">\r
-  <modelVersion>4.0.0</modelVersion>\r
-  <parent>\r
-    <groupId>org.onap.cps</groupId>\r
-    <artifactId>cps</artifactId>\r
-    <version>0.0.1-SNAPSHOT</version>\r
-  </parent>\r
-  <artifactId>cps-ri</artifactId>\r
-\r
-  <dependencies>\r
-\r
-    <dependency>\r
-      <groupId>org.onap.cps</groupId>\r
-      <artifactId>cps-service</artifactId>\r
-      <version>${project.version}</version>\r
-    </dependency>\r
-\r
-    <dependency>\r
-      <groupId>org.springframework.boot</groupId>\r
-      <artifactId>spring-boot-starter-data-jpa</artifactId>\r
-    </dependency>\r
-\r
-    <dependency>\r
-      <groupId>org.springframework.boot</groupId>\r
-      <artifactId>spring-boot-starter-validation</artifactId>\r
-    </dependency>\r
-\r
-    <dependency>\r
-      <groupId>org.mariadb.jdbc</groupId>\r
-      <artifactId>mariadb-java-client</artifactId>\r
-    </dependency>\r
-\r
-    <dependency>\r
-      <groupId>org.projectlombok</groupId>\r
-      <artifactId>lombok</artifactId>\r
-    </dependency>\r
-\r
-    <dependency>\r
-      <!-- Provides mariadb object mapping to an entity -->\r
-      <groupId>jakarta.persistence</groupId>\r
-      <artifactId>jakarta.persistence-api</artifactId>\r
-    </dependency>\r
-\r
-  </dependencies>\r
-\r
-</project>
\ No newline at end of file
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">\r
+    <modelVersion>4.0.0</modelVersion>\r
+    <parent>\r
+        <groupId>org.onap.cps</groupId>\r
+        <artifactId>cps</artifactId>\r
+        <version>0.0.1-SNAPSHOT</version>\r
+    </parent>\r
+    <artifactId>cps-ri</artifactId>\r
+\r
+    <dependencies>\r
+\r
+        <dependency>\r
+            <groupId>org.onap.cps</groupId>\r
+            <artifactId>cps-service</artifactId>\r
+            <version>${project.version}</version>\r
+        </dependency>\r
+\r
+        <dependency>\r
+            <groupId>org.springframework.boot</groupId>\r
+            <artifactId>spring-boot-starter-data-jpa</artifactId>\r
+        </dependency>\r
+\r
+        <dependency>\r
+            <groupId>org.springframework.boot</groupId>\r
+            <artifactId>spring-boot-starter-validation</artifactId>\r
+        </dependency>\r
+\r
+        <dependency>\r
+            <groupId>org.postgresql</groupId>\r
+            <artifactId>postgresql</artifactId>\r
+        </dependency>\r
+\r
+\r
+        <dependency>\r
+            <groupId>org.projectlombok</groupId>\r
+            <artifactId>lombok</artifactId>\r
+        </dependency>\r
+\r
+    </dependencies>\r
+\r
+</project>\r