From d6d05b5ba5a970fef29e901af23a22500d313a7b Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Wed, 23 Nov 2022 09:38:35 +0100
Subject: [PATCH] Further progress

---
 .../src/main/resources/application-docker.yml |  3 +-
 .../src/main/resources/application-local.yml  |  5 +--
 .../src/main/resources/application.yml        |  3 +-
 .../src/main/resources/application-docker.yml |  3 +-
 .../src/main/resources/application-local.yml  |  3 +-
 .../src/main/resources/application.yml        |  3 +-
 .../src/main/resources/application-docker.yml |  3 +-
 .../src/main/resources/application-local.yml  |  3 +-
 .../src/main/resources/application.yml        |  3 +-
 .../src/main/resources/application-docker.yml |  2 +-
 .../src/main/resources/application.yml        |  2 +-
 .../src/main/resources/application-docker.yml |  3 +-
 .../src/main/resources/application-local.yml  |  3 +-
 .../src/main/resources/application.yml        |  3 +-
 .../src/test/java/at/tuwien/BaseUnitTest.java |  2 +-
 fda-metadata-db/Dockerfile                    |  4 +--
 .../table/columns/concepts/ConceptDto.java    |  3 ++
 .../at/tuwien/entities/database/Database.java |  2 +-
 .../at/tuwien/entities/database/License.java  |  2 +-
 .../at/tuwien/entities/database/View.java     |  2 +-
 .../tuwien/entities/database/table/Table.java |  2 +-
 .../database/table/columns/TableColumn.java   |  2 +-
 .../table/columns/concepts/ColumnConcept.java |  6 ++--
 .../table/columns/concepts/Concept.java       | 14 ++++++--
 .../entities/identifier/Identifier.java       |  6 ++--
 fda-metadata-db/setup-schema.sql              | 36 +++++++++----------
 fda-metadata-db/setup-user.sh                 |  3 +-
 .../src/main/resources/application-docker.yml |  3 +-
 .../src/main/resources/application-local.yml  |  3 +-
 .../src/main/resources/application.yml        |  3 +-
 .../src/main/resources/application-docker.yml |  3 +-
 .../src/main/resources/application-local.yml  |  3 +-
 .../src/main/resources/application.yml        |  3 +-
 .../src/main/resources/application-docker.yml |  3 +-
 .../src/main/resources/application-local.yml  |  3 +-
 .../src/main/resources/application.yml        |  3 +-
 36 files changed, 94 insertions(+), 59 deletions(-)

diff --git a/fda-authentication-service/rest-service/src/main/resources/application-docker.yml b/fda-authentication-service/rest-service/src/main/resources/application-docker.yml
index eaa0435b27..9bd14ae2ff 100644
--- a/fda-authentication-service/rest-service/src/main/resources/application-docker.yml
+++ b/fda-authentication-service/rest-service/src/main/resources/application-docker.yml
@@ -8,12 +8,13 @@ spring:
     password: "${METADATA_PASSWORD}"
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
     properties:
       hibernate:
+        default_schema: fda
         jdbc:
           time_zone: UTC
   application:
diff --git a/fda-authentication-service/rest-service/src/main/resources/application-local.yml b/fda-authentication-service/rest-service/src/main/resources/application-local.yml
index 420671411f..b9c10d9360 100644
--- a/fda-authentication-service/rest-service/src/main/resources/application-local.yml
+++ b/fda-authentication-service/rest-service/src/main/resources/application-local.yml
@@ -4,16 +4,17 @@ spring:
   datasource:
     url: jdbc:mariadb://localhost:3306/fda
     driver-class-name: org.mariadb.jdbc.Driver
-    username: dbrepo
+    username: root
     password: dbrepo
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
     properties:
       hibernate:
+        default_schema: fda
         jdbc:
           time_zone: UTC
   application:
diff --git a/fda-authentication-service/rest-service/src/main/resources/application.yml b/fda-authentication-service/rest-service/src/main/resources/application.yml
index a8fd56e659..a8fb4837e3 100644
--- a/fda-authentication-service/rest-service/src/main/resources/application.yml
+++ b/fda-authentication-service/rest-service/src/main/resources/application.yml
@@ -8,12 +8,13 @@ spring:
     password: "${METADATA_PASSWORD}"
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
     properties:
       hibernate:
+        default_schema: "${METADATA_DB}"
         jdbc:
           time_zone: UTC
   application:
diff --git a/fda-container-service/rest-service/src/main/resources/application-docker.yml b/fda-container-service/rest-service/src/main/resources/application-docker.yml
index 24f847776b..bff6830b95 100644
--- a/fda-container-service/rest-service/src/main/resources/application-docker.yml
+++ b/fda-container-service/rest-service/src/main/resources/application-docker.yml
@@ -8,12 +8,13 @@ spring:
     password: "${METADATA_PASSWORD}"
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
     properties:
       hibernate:
+        default_schema: fda
         jdbc:
           time_zone: UTC
   application:
diff --git a/fda-container-service/rest-service/src/main/resources/application-local.yml b/fda-container-service/rest-service/src/main/resources/application-local.yml
index 99918dae2a..640df600fa 100644
--- a/fda-container-service/rest-service/src/main/resources/application-local.yml
+++ b/fda-container-service/rest-service/src/main/resources/application-local.yml
@@ -8,12 +8,13 @@ spring:
     password: dbrepo
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
     properties:
       hibernate:
+        default_schema: fda
         jdbc:
           time_zone: UTC
   application:
diff --git a/fda-container-service/rest-service/src/main/resources/application.yml b/fda-container-service/rest-service/src/main/resources/application.yml
index e3d7717a3d..b9605b4fdd 100644
--- a/fda-container-service/rest-service/src/main/resources/application.yml
+++ b/fda-container-service/rest-service/src/main/resources/application.yml
@@ -8,12 +8,13 @@ spring:
     password: "${METADATA_PASSWORD}"
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
     properties:
       hibernate:
+        default_schema: "${METADATA_DB}"
         jdbc:
           time_zone: UTC
   application:
diff --git a/fda-database-service/rest-service/src/main/resources/application-docker.yml b/fda-database-service/rest-service/src/main/resources/application-docker.yml
index 576a0422f1..60f5b8729a 100644
--- a/fda-database-service/rest-service/src/main/resources/application-docker.yml
+++ b/fda-database-service/rest-service/src/main/resources/application-docker.yml
@@ -8,12 +8,13 @@ spring:
     password: "${METADATA_PASSWORD}"
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
     properties:
       hibernate:
+        default_schema: fda
         jdbc:
           time_zone: UTC
   application:
diff --git a/fda-database-service/rest-service/src/main/resources/application-local.yml b/fda-database-service/rest-service/src/main/resources/application-local.yml
index 0a7f570359..76c11d7907 100644
--- a/fda-database-service/rest-service/src/main/resources/application-local.yml
+++ b/fda-database-service/rest-service/src/main/resources/application-local.yml
@@ -8,12 +8,13 @@ spring:
     password: dbrepo
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
     properties:
       hibernate:
+        default_schema: fda
         jdbc:
           time_zone: UTC
   application:
diff --git a/fda-database-service/rest-service/src/main/resources/application.yml b/fda-database-service/rest-service/src/main/resources/application.yml
index 2472179420..c01a4243df 100644
--- a/fda-database-service/rest-service/src/main/resources/application.yml
+++ b/fda-database-service/rest-service/src/main/resources/application.yml
@@ -8,12 +8,13 @@ spring:
     password: "${METADATA_PASSWORD}"
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
     properties:
       hibernate:
+        default_schema: "${METADATA_DB}"
         jdbc:
           time_zone: UTC
   application:
diff --git a/fda-discovery-service/discovery/src/main/resources/application-docker.yml b/fda-discovery-service/discovery/src/main/resources/application-docker.yml
index 074b27b10c..2bb1601ec6 100644
--- a/fda-discovery-service/discovery/src/main/resources/application-docker.yml
+++ b/fda-discovery-service/discovery/src/main/resources/application-docker.yml
@@ -7,7 +7,7 @@ spring:
     password: postgres
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
diff --git a/fda-discovery-service/discovery/src/main/resources/application.yml b/fda-discovery-service/discovery/src/main/resources/application.yml
index 6cd73409b3..8b05b5cf51 100644
--- a/fda-discovery-service/discovery/src/main/resources/application.yml
+++ b/fda-discovery-service/discovery/src/main/resources/application.yml
@@ -7,7 +7,7 @@ spring:
     password: "${METADATA_PASSWORD}"
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
diff --git a/fda-identifier-service/rest-service/src/main/resources/application-docker.yml b/fda-identifier-service/rest-service/src/main/resources/application-docker.yml
index dfe20bf768..5465a3c284 100644
--- a/fda-identifier-service/rest-service/src/main/resources/application-docker.yml
+++ b/fda-identifier-service/rest-service/src/main/resources/application-docker.yml
@@ -8,12 +8,13 @@ spring:
     password: "${METADATA_PASSWORD}"
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
     properties:
       hibernate:
+        default_schema: fda
         jdbc:
           time_zone: UTC
   application:
diff --git a/fda-identifier-service/rest-service/src/main/resources/application-local.yml b/fda-identifier-service/rest-service/src/main/resources/application-local.yml
index acb11a9606..62ca8741e2 100644
--- a/fda-identifier-service/rest-service/src/main/resources/application-local.yml
+++ b/fda-identifier-service/rest-service/src/main/resources/application-local.yml
@@ -8,12 +8,13 @@ spring:
     password: dbrepo
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
     properties:
       hibernate:
+        default_schema: fda
         jdbc:
           time_zone: UTC
   application:
diff --git a/fda-identifier-service/rest-service/src/main/resources/application.yml b/fda-identifier-service/rest-service/src/main/resources/application.yml
index 8553453894..f4004bb817 100644
--- a/fda-identifier-service/rest-service/src/main/resources/application.yml
+++ b/fda-identifier-service/rest-service/src/main/resources/application.yml
@@ -8,12 +8,13 @@ spring:
     password: "${METADATA_PASSWORD}"
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
     properties:
       hibernate:
+        default_schema: "${METADATA_DB}"
         jdbc:
           time_zone: UTC
   application:
diff --git a/fda-identifier-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java b/fda-identifier-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java
index 909d11f260..04e96620ef 100644
--- a/fda-identifier-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java
+++ b/fda-identifier-service/rest-service/src/test/java/at/tuwien/BaseUnitTest.java
@@ -98,7 +98,7 @@ public abstract class BaseUnitTest {
     public final static String IMAGE_1_TAG = "13-alpine";
     public final static String IMAGE_1_HASH = "83b40f2726e5";
     public final static Integer IMAGE_1_PORT = 5432;
-    public final static String IMAGE_1_DIALECT = "org.hibernate.dialect.PostgreSQLDialect";
+    public final static String IMAGE_1_DIALECT = "org.mariadb.jdbc.Driver";
     public final static String IMAGE_1_DRIVER = "org.postgresql.Driver";
     public final static String IMAGE_1_JDBC = "postgresql";
     public final static Long IMAGE_1_SIZE = 12000L;
diff --git a/fda-metadata-db/Dockerfile b/fda-metadata-db/Dockerfile
index bc6ee91576..50141d3569 100644
--- a/fda-metadata-db/Dockerfile
+++ b/fda-metadata-db/Dockerfile
@@ -31,7 +31,7 @@ ENV MARIADB_PASSWORD="${METADATA_PASSWORD}"
 # Scripts are copied to /docker-entrypoint-initdb.d/ in docker-compose from analyze service
 HEALTHCHECK --interval=10s --timeout=5s --retries=12 CMD mysqladmin ping --user="$METADATA_USERNAME" --password="$METADATA_PASSWORD" --silent
 
-COPY ./setup-schema.sql /docker-entrypoint-initdb.d/1.sql
-COPY ./setup-user.sh /docker-entrypoint-initdb.d/2.sh
+COPY ./setup-user.sh /docker-entrypoint-initdb.d/1.sh
+COPY ./setup-schema.sql /docker-entrypoint-initdb.d/2.sql
 
 COPY --from=build /root/.m2/repository/at/tuwien /root/.m2/repository/at/tuwien
\ No newline at end of file
diff --git a/fda-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptDto.java b/fda-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptDto.java
index a229dd2f1f..2cdb741097 100644
--- a/fda-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptDto.java
+++ b/fda-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptDto.java
@@ -16,6 +16,9 @@ import java.time.Instant;
 @NoArgsConstructor
 public class ConceptDto {
 
+    @NotNull
+    private String id;
+
     @NotNull
     private String uri;
 
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java
index 7549845e62..361736ed67 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java
@@ -65,7 +65,7 @@ public class Database {
     @Column(nullable = false)
     private String exchange;
 
-    @Column
+    @Column(columnDefinition = "TEXT")
     private String description;
 
     @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/License.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/License.java
index e1f188f321..baad81f5a3 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/License.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/License.java
@@ -21,7 +21,7 @@ public class License {
     @Column(nullable = false)
     private String identifier;
 
-    @Column(nullable = false)
+    @Column(nullable = false, columnDefinition = "TEXT")
     private String uri;
 
 }
\ No newline at end of file
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/View.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/View.java
index 14466a12bd..6111b151c0 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/View.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/View.java
@@ -62,7 +62,7 @@ public class View {
     @Column(name = "initialview", nullable = false)
     private Boolean isInitialView;
 
-    @Column(nullable = false)
+    @Column(nullable = false, columnDefinition = "TEXT")
     private String query;
 
     @Column(nullable = false, updatable = false)
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/Table.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/Table.java
index c19555325c..36e08d194f 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/Table.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/Table.java
@@ -58,7 +58,7 @@ public class Table {
     @Column(nullable = false, updatable = false)
     private String topic;
 
-    @Column(name = "tdescription")
+    @Column(name = "tdescription", columnDefinition = "TEXT")
     private String description;
 
     @org.springframework.data.annotation.Transient
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java
index 18412a2792..a297ddc9f8 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java
@@ -124,7 +124,7 @@ public class TableColumn implements Comparable<TableColumn> {
                     @JoinColumn(name = "tid", referencedColumnName = "tid", insertable = false, updatable = false),
                     @JoinColumn(name = "cdbid", referencedColumnName = "cdbid", insertable = false, updatable = false)
             },
-            inverseJoinColumns = @JoinColumn(name = "uri"))
+            inverseJoinColumns = @JoinColumn(name = "concept_id", referencedColumnName = "id"))
     private Concept concept;
 
     @Column
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/ColumnConcept.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/ColumnConcept.java
index c375969f47..9d38bfcef2 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/ColumnConcept.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/ColumnConcept.java
@@ -6,6 +6,9 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 import javax.persistence.*;
 import java.io.Serializable;
 
+/**
+ * Join Table
+ */
 @Data
 @Entity
 @Builder
@@ -30,7 +33,4 @@ public class ColumnConcept implements Serializable {
     @Id
     @EqualsAndHashCode.Include
     private Long cdbid;
-
-    @Column(nullable = false)
-    private String uri;
 }
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/Concept.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/Concept.java
index 733b2c6b14..48dc8bcea9 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/Concept.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/concepts/Concept.java
@@ -2,6 +2,7 @@ package at.tuwien.entities.database.table.columns.concepts;
 
 import at.tuwien.entities.database.table.columns.TableColumn;
 import lombok.*;
+import org.hibernate.annotations.GenericGenerator;
 import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
@@ -21,7 +22,16 @@ import java.util.List;
 public class Concept {
 
     @Id
-    @Column(name = "URI", nullable = false)
+    @EqualsAndHashCode.Include
+    @GeneratedValue(generator = "concept-sequence")
+    @GenericGenerator(
+            name = "concept-sequence",
+            strategy = "enhanced-sequence",
+            parameters = @org.hibernate.annotations.Parameter(name = "sequence_name", value = "mdb_concepts_seq")
+    )
+    private Long id;
+
+    @Column(name = "URI", nullable = false, columnDefinition = "TEXT")
     private String uri;
 
     @Column(name = "name", nullable = false)
@@ -31,7 +41,7 @@ public class Concept {
     @ToString.Exclude
     @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.MERGE)
     @JoinTable(name = "mdb_columns_concepts",
-            joinColumns = @JoinColumn(name = "uri"),
+            joinColumns = @JoinColumn(name = "concept_id", referencedColumnName = "id", insertable = false, updatable = false),
             inverseJoinColumns = {
                     @JoinColumn(name = "cid", referencedColumnName = "id", insertable = false, updatable = false),
                     @JoinColumn(name = "tid", referencedColumnName = "tid", insertable = false, updatable = false),
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java
index 2fd3030060..f5d1d3769e 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java
@@ -60,7 +60,7 @@ public class Identifier {
     @Column(nullable = false)
     private String title;
 
-    @Column
+    @Column(columnDefinition = "TEXT")
     private String description;
 
     @NotBlank
@@ -81,10 +81,10 @@ public class Identifier {
     @Enumerated(EnumType.STRING)
     private IdentifierType type;
 
-    @Column
+    @Column(columnDefinition = "TEXT")
     private String query;
 
-    @Column
+    @Column(columnDefinition = "TEXT")
     private String queryNormalized;
 
     @Column
diff --git a/fda-metadata-db/setup-schema.sql b/fda-metadata-db/setup-schema.sql
index fd2dd014a2..788aaaa7c1 100644
--- a/fda-metadata-db/setup-schema.sql
+++ b/fda-metadata-db/setup-schema.sql
@@ -212,7 +212,7 @@ CREATE TABLE mdb_images_date
     created_at      timestamp              NOT NULL DEFAULT NOW(),
     PRIMARY KEY (id),
     FOREIGN KEY (iid) REFERENCES mdb_images (id),
-    UNIQUE (database_format)
+    UNIQUE (database_format, unix_format, example)
 );
 
 CREATE TABLE IF NOT EXISTS mdb_containers
@@ -328,7 +328,7 @@ CREATE TABLE IF NOT EXISTS mdb_tables
     FOREIGN KEY (tDBID) REFERENCES mdb_databases (id)
 );
 
-CREATE TABLE IF NOT EXISTS mdb_COLUMNS
+CREATE TABLE IF NOT EXISTS mdb_columns
 (
     ID               bigint       NOT NULL DEFAULT nextval(mdb_columns_seq),
     cDBID            bigint       NOT NULL,
@@ -353,7 +353,7 @@ CREATE TABLE IF NOT EXISTS mdb_COLUMNS
     PRIMARY KEY (cDBID, tID, ID)
 );
 
-CREATE TABLE IF NOT EXISTS mdb_COLUMNS_ENUMS
+CREATE TABLE IF NOT EXISTS mdb_columns_enums
 (
     ID            bigint                 NOT NULL DEFAULT nextval(mdb_columns_enum_seq),
     eDBID         bigint                 NOT NULL,
@@ -362,11 +362,11 @@ CREATE TABLE IF NOT EXISTS mdb_COLUMNS_ENUMS
     enum_values   CHARACTER VARYING(255) NOT NULL,
     created       timestamp              NOT NULL DEFAULT NOW(),
     last_modified timestamp,
-    FOREIGN KEY (eDBID, tID, cID) REFERENCES mdb_COLUMNS (cDBID, tID, ID),
+    FOREIGN KEY (eDBID, tID, cID) REFERENCES mdb_columns (cDBID, tID, ID),
     PRIMARY KEY (ID, eDBID, tID, cID)
 );
 
-CREATE TABLE IF NOT EXISTS mdb_COLUMNS_nom
+CREATE TABLE IF NOT EXISTS mdb_columns_nom
 (
     cDBID         bigint,
     tID           bigint,
@@ -374,11 +374,11 @@ CREATE TABLE IF NOT EXISTS mdb_COLUMNS_nom
     maxlength     INTEGER,
     last_modified timestamp,
     created       timestamp NOT NULL DEFAULT NOW(),
-    FOREIGN KEY (cDBID, tID, cID) REFERENCES mdb_COLUMNS (cDBID, tID, ID),
+    FOREIGN KEY (cDBID, tID, cID) REFERENCES mdb_columns (cDBID, tID, ID),
     PRIMARY KEY (cDBID, tID, cID)
 );
 
-CREATE TABLE IF NOT EXISTS mdb_COLUMNS_num
+CREATE TABLE IF NOT EXISTS mdb_columns_num
 (
     cDBID         bigint,
     tID           bigint,
@@ -392,11 +392,11 @@ CREATE TABLE IF NOT EXISTS mdb_COLUMNS_num
 --    Histogram     INTEGER[],
     last_modified timestamp,
     created       timestamp NOT NULL DEFAULT NOW(),
-    FOREIGN KEY (cDBID, tID, cID) REFERENCES mdb_COLUMNS (cDBID, tID, ID),
+    FOREIGN KEY (cDBID, tID, cID) REFERENCES mdb_columns (cDBID, tID, ID),
     PRIMARY KEY (cDBID, tID, cID)
 );
 
-CREATE TABLE IF NOT EXISTS mdb_COLUMNS_cat
+CREATE TABLE IF NOT EXISTS mdb_columns_cat
 (
     cDBID         bigint,
     tID           bigint,
@@ -405,7 +405,7 @@ CREATE TABLE IF NOT EXISTS mdb_COLUMNS_cat
 --    cat_array     TEXT[],
     last_modified timestamp,
     created       timestamp NOT NULL DEFAULT NOW(),
-    FOREIGN KEY (cDBID, tID, cID) REFERENCES mdb_COLUMNS (cDBID, tID, ID),
+    FOREIGN KEY (cDBID, tID, cID) REFERENCES mdb_columns (cDBID, tID, ID),
     PRIMARY KEY (cDBID, tID, cID)
 );
 
@@ -413,7 +413,7 @@ CREATE TABLE IF NOT EXISTS mdb_concepts
 (
     id         bigint    not null default nextval(mdb_concepts_seq),
     URI        TEXT,
-    name       TEXT,
+    name       VARCHAR(255),
     created    timestamp NOT NULL DEFAULT NOW(),
     created_by bigint,
     FOREIGN KEY (created_by) REFERENCES mdb_users (UserID),
@@ -427,11 +427,11 @@ CREATE TABLE IF NOT EXISTS mdb_columns_concepts
     cID        bigint    NOT NULL,
     concept_id bigint REFERENCES mdb_concepts (id), /* mysql does not allow text primary keys */
     created    timestamp NOT NULL DEFAULT NOW(),
-    FOREIGN KEY (cDBID, tID, cID) REFERENCES mdb_COLUMNS (cDBID, tID, ID),
+    FOREIGN KEY (cDBID, tID, cID) REFERENCES mdb_columns (cDBID, tID, ID),
     PRIMARY KEY (cDBID, tID, cID)
 );
 
-CREATE TABLE IF NOT EXISTS mdb_VIEW
+CREATE TABLE IF NOT EXISTS mdb_view
 (
     id            bigint       NOT NULL DEFAULT nextval(mdb_view_seq),
     vcid          bigint       NOT NULL,
@@ -488,13 +488,13 @@ CREATE TABLE IF NOT EXISTS mdb_identifiers
 
 CREATE TABLE IF NOT EXISTS mdb_related_identifiers
 (
-    id            bigint             DEFAULT nextval(mdb_related_identifiers_seq),
-    iid           bigint    NOT NULL,
-    value         text      NOT NULL,
+    id            bigint                DEFAULT nextval(mdb_related_identifiers_seq),
+    iid           bigint       NOT NULL,
+    value         varchar(255) NOT NULL,
     type          varchar(255),
     relation      varchar(255),
-    created       timestamp NOT NULL DEFAULT NOW(),
-    created_by    bigint    NOT NULL,
+    created       timestamp    NOT NULL DEFAULT NOW(),
+    created_by    bigint       NOT NULL,
     last_modified timestamp,
     deleted       timestamp,
     PRIMARY KEY (id, iid), /* must be a single id from persistent identifier concept */
diff --git a/fda-metadata-db/setup-user.sh b/fda-metadata-db/setup-user.sh
index 63c5e77afe..724f28f273 100644
--- a/fda-metadata-db/setup-user.sh
+++ b/fda-metadata-db/setup-user.sh
@@ -1,5 +1,6 @@
 #!/bin/sh
 mysql --user="root" --password="${METADATA_PASSWORD}" --database="${METADATA_DB}" << EOF
 CREATE USER '${MARIADB_USERNAME}' IDENTIFIED BY '${MARIADB_PASSWORD}';
-GRANT ALL PRIVILEGES ON '${METADATA_DB}' TO '${MARIADB_USERNAME}';
+GRANT SELECT ON ${METADATA_DB}.* TO '${MARIADB_USERNAME}';
+FLUSH PRIVILEGES;
 EOF
\ No newline at end of file
diff --git a/fda-metadata-service/rest-service/src/main/resources/application-docker.yml b/fda-metadata-service/rest-service/src/main/resources/application-docker.yml
index 0d2d4dbbda..99da976873 100644
--- a/fda-metadata-service/rest-service/src/main/resources/application-docker.yml
+++ b/fda-metadata-service/rest-service/src/main/resources/application-docker.yml
@@ -8,12 +8,13 @@ spring:
     password: "${METADATA_PASSWORD}"
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
     properties:
       hibernate:
+        default_schema: fda
         jdbc:
           time_zone: UTC
   application:
diff --git a/fda-metadata-service/rest-service/src/main/resources/application-local.yml b/fda-metadata-service/rest-service/src/main/resources/application-local.yml
index 7278d36694..58b27eec0a 100644
--- a/fda-metadata-service/rest-service/src/main/resources/application-local.yml
+++ b/fda-metadata-service/rest-service/src/main/resources/application-local.yml
@@ -8,12 +8,13 @@ spring:
     password: dbrepo
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
     properties:
       hibernate:
+        default_schema: fda
         jdbc:
           time_zone: UTC
   application:
diff --git a/fda-metadata-service/rest-service/src/main/resources/application.yml b/fda-metadata-service/rest-service/src/main/resources/application.yml
index e10395d64f..291622e4ac 100644
--- a/fda-metadata-service/rest-service/src/main/resources/application.yml
+++ b/fda-metadata-service/rest-service/src/main/resources/application.yml
@@ -8,12 +8,13 @@ spring:
     password: "${METADATA_PASSWORD}"
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
     properties:
       hibernate:
+        default_schema: "${METADATA_DB}"
         jdbc:
           time_zone: UTC
   application:
diff --git a/fda-query-service/rest-service/src/main/resources/application-docker.yml b/fda-query-service/rest-service/src/main/resources/application-docker.yml
index 19b6beb523..6ea04978aa 100644
--- a/fda-query-service/rest-service/src/main/resources/application-docker.yml
+++ b/fda-query-service/rest-service/src/main/resources/application-docker.yml
@@ -8,12 +8,13 @@ spring:
     password: "${METADATA_PASSWORD}"
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
     properties:
       hibernate:
+        default_schema: fda
         jdbc:
           time_zone: UTC
   application:
diff --git a/fda-query-service/rest-service/src/main/resources/application-local.yml b/fda-query-service/rest-service/src/main/resources/application-local.yml
index 4e107cf208..8f8defbb1b 100644
--- a/fda-query-service/rest-service/src/main/resources/application-local.yml
+++ b/fda-query-service/rest-service/src/main/resources/application-local.yml
@@ -8,12 +8,13 @@ spring:
     password: dbrepo
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
     properties:
       hibernate:
+        default_schema: fda
         jdbc:
           time_zone: UTC
   application:
diff --git a/fda-query-service/rest-service/src/main/resources/application.yml b/fda-query-service/rest-service/src/main/resources/application.yml
index ee1656dd6b..0f84ade3e0 100644
--- a/fda-query-service/rest-service/src/main/resources/application.yml
+++ b/fda-query-service/rest-service/src/main/resources/application.yml
@@ -8,12 +8,13 @@ spring:
     password: "${METADATA_PASSWORD}"
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
     properties:
       hibernate:
+        default_schema: "${METADATA_DB}"
         jdbc:
           time_zone: UTC
   application:
diff --git a/fda-table-service/rest-service/src/main/resources/application-docker.yml b/fda-table-service/rest-service/src/main/resources/application-docker.yml
index 32321dd3c3..51bb0170a0 100644
--- a/fda-table-service/rest-service/src/main/resources/application-docker.yml
+++ b/fda-table-service/rest-service/src/main/resources/application-docker.yml
@@ -8,12 +8,13 @@ spring:
     password: "${METADATA_PASSWORD}"
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
     properties:
       hibernate:
+        default_schema: fda
         jdbc:
           time_zone: UTC
   application:
diff --git a/fda-table-service/rest-service/src/main/resources/application-local.yml b/fda-table-service/rest-service/src/main/resources/application-local.yml
index 3901f17037..843fbdebd0 100644
--- a/fda-table-service/rest-service/src/main/resources/application-local.yml
+++ b/fda-table-service/rest-service/src/main/resources/application-local.yml
@@ -8,12 +8,13 @@ spring:
     password: dbrepo
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
     properties:
       hibernate:
+        default_schema: fda
         jdbc:
           time_zone: UTC
   application:
diff --git a/fda-table-service/rest-service/src/main/resources/application.yml b/fda-table-service/rest-service/src/main/resources/application.yml
index 2f82391ccc..502aa32659 100644
--- a/fda-table-service/rest-service/src/main/resources/application.yml
+++ b/fda-table-service/rest-service/src/main/resources/application.yml
@@ -8,12 +8,13 @@ spring:
     password: "${METADATA_PASSWORD}"
   jpa:
     show-sql: false
-    database-platform: org.hibernate.dialect.PostgreSQLDialect
+    database-platform: org.hibernate.dialect.MariaDBDialect
     hibernate:
       ddl-auto: validate
     open-in-view: false
     properties:
       hibernate:
+        default_schema: "${METADATA_DB}"
         jdbc:
           time_zone: UTC
   application:
-- 
GitLab