From c34a733720d69f30dc97702039dd6ce72956f559 Mon Sep 17 00:00:00 2001 From: Martin Weise <martin.weise@tuwien.ac.at> Date: Tue, 22 Nov 2022 17:51:51 +0100 Subject: [PATCH] Progress on fixing int to bigint and references --- fda-authentication-service/Dockerfile | 4 +-- fda-authentication-service/pom.xml | 5 ++++ fda-container-service/Dockerfile | 4 +-- fda-database-service/Dockerfile | 4 +-- fda-identifier-service/Dockerfile | 4 +-- fda-metadata-db/Dockerfile | 12 ++++++-- fda-metadata-db/setup-schema.sql | 43 +++++++++++++-------------- fda-metadata-db/setup-user.sh | 5 ++++ fda-metadata-service/Dockerfile | 4 +-- fda-metadata-service/pom.xml | 6 ++++ fda-query-service/Dockerfile | 4 +-- fda-table-service/Dockerfile | 4 +-- 12 files changed, 60 insertions(+), 39 deletions(-) create mode 100644 fda-metadata-db/setup-user.sh diff --git a/fda-authentication-service/Dockerfile b/fda-authentication-service/Dockerfile index 42dece92fa..3011726fb1 100644 --- a/fda-authentication-service/Dockerfile +++ b/fda-authentication-service/Dockerfile @@ -22,8 +22,8 @@ RUN mvn -q clean package -DskipTests FROM openjdk:11-jre-slim as runtime ENV METADATA_DB=fda -ENV METADATA_USERNAME=postgres -ENV METADATA_PASSWORD=postgres +ENV METADATA_USERNAME=dbrepo +ENV METADATA_PASSWORD=dbrepo ENV BROKER_USERNAME=fda ENV BROKER_PASSWORD=fda ENV WEBSITE=http://example.com diff --git a/fda-authentication-service/pom.xml b/fda-authentication-service/pom.xml index 2d96e04186..4fd2e72422 100644 --- a/fda-authentication-service/pom.xml +++ b/fda-authentication-service/pom.xml @@ -117,6 +117,11 @@ <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> + <dependency> + <groupId>org.mariadb.jdbc</groupId> + <artifactId>mariadb-java-client</artifactId> + <version>${mariadb.version}</version> + </dependency> <!-- IDE --> <dependency> <groupId>org.projectlombok</groupId> diff --git a/fda-container-service/Dockerfile b/fda-container-service/Dockerfile index 3bea5887a3..9fbaa3dc94 100644 --- a/fda-container-service/Dockerfile +++ b/fda-container-service/Dockerfile @@ -22,8 +22,8 @@ RUN mvn -q clean package -DskipTests > /dev/null FROM openjdk:11-jre-slim as runtime ENV METADATA_DB=fda -ENV METADATA_USERNAME=postgres -ENV METADATA_PASSWORD=postgres +ENV METADATA_USERNAME=dbrepo +ENV METADATA_PASSWORD=dbrepo ENV BROKER_USERNAME=fda ENV BROKER_PASSWORD=fda ENV SHARED_FILESYSTEM=/tmp diff --git a/fda-database-service/Dockerfile b/fda-database-service/Dockerfile index a6f4b9a8f9..4da92d5f6a 100644 --- a/fda-database-service/Dockerfile +++ b/fda-database-service/Dockerfile @@ -22,8 +22,8 @@ RUN mvn -q clean package -DskipTests > /dev/null FROM openjdk:11-jre-slim as runtime ENV METADATA_DB=fda -ENV METADATA_USERNAME=postgres -ENV METADATA_PASSWORD=postgres +ENV METADATA_USERNAME=dbrepo +ENV METADATA_PASSWORD=dbrepo ENV BROKER_USERNAME=fda ENV BROKER_PASSWORD=fda ENV SEARCH_ENDPOINT=search-service diff --git a/fda-identifier-service/Dockerfile b/fda-identifier-service/Dockerfile index 3db7b8b6f7..7a05fc2856 100644 --- a/fda-identifier-service/Dockerfile +++ b/fda-identifier-service/Dockerfile @@ -23,8 +23,8 @@ RUN mvn -q clean package -DskipTests > /dev/null FROM openjdk:11-jre-slim as runtime ENV METADATA_DB=fda -ENV METADATA_USERNAME=postgres -ENV METADATA_PASSWORD=postgres +ENV METADATA_USERNAME=dbrepo +ENV METADATA_PASSWORD=dbrepo ENV GATEWAY_ENDPOINT=http://gateway-service:9095 ENV WEBSITE=http://localhost:3000 ENV LOG_LEVEL=debug diff --git a/fda-metadata-db/Dockerfile b/fda-metadata-db/Dockerfile index 5cb120f95a..bc6ee91576 100644 --- a/fda-metadata-db/Dockerfile +++ b/fda-metadata-db/Dockerfile @@ -18,14 +18,20 @@ RUN mvn -q clean package -DskipTests > /dev/null RUN mvn -q clean install > /dev/null ###### SECOND STAGE ###### -FROM postgres:14-alpine as runtime +FROM mariadb:10.5 as runtime +ENV METADATA_DB=fda ENV METADATA_USERNAME=dbrepo ENV METADATA_PASSWORD=dbrepo +ENV MARIADB_DATABASE="${METADATA_DB}" +ENV MARIADB_ROOT_PASSWORD="${METADATA_PASSWORD}" +ENV MARIADB_USERNAME="${METADATA_USERNAME}" +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 pg_isready +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/ +COPY ./setup-schema.sql /docker-entrypoint-initdb.d/1.sql +COPY ./setup-user.sh /docker-entrypoint-initdb.d/2.sh 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/setup-schema.sql b/fda-metadata-db/setup-schema.sql index 1e18e92dc3..fd2dd014a2 100644 --- a/fda-metadata-db/setup-schema.sql +++ b/fda-metadata-db/setup-schema.sql @@ -126,6 +126,13 @@ CREATE SEQUENCE mdb_tokens_seq NO MAXVALUE CACHE 1; +CREATE SEQUENCE mdb_concepts_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + CREATE TABLE IF NOT EXISTS mdb_users ( UserID bigint not null DEFAULT nextval(mdb_user_seq), @@ -306,7 +313,7 @@ CREATE TABLE IF NOT EXISTS mdb_tables tDescription TEXT, NumCols INTEGER, NumRows INTEGER, - separator CHAR(1), + `separator` CHAR(1), quote CHAR(1), element_null VARCHAR(50), skip_lines BIGINT, @@ -404,21 +411,22 @@ CREATE TABLE IF NOT EXISTS mdb_COLUMNS_cat CREATE TABLE IF NOT EXISTS mdb_concepts ( + id bigint not null default nextval(mdb_concepts_seq), URI TEXT, name TEXT, created timestamp NOT NULL DEFAULT NOW(), created_by bigint, FOREIGN KEY (created_by) REFERENCES mdb_users (UserID), - PRIMARY KEY (URI) + PRIMARY KEY (id) ); CREATE TABLE IF NOT EXISTS mdb_columns_concepts ( - cDBID bigint NOT NULL, - tID bigint NOT NULL, - cID bigint NOT NULL, - URI TEXT REFERENCES mdb_concepts (URI), - created timestamp NOT NULL DEFAULT NOW(), + cDBID bigint NOT NULL, + tID bigint NOT NULL, + 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), PRIMARY KEY (cDBID, tID, cID) ); @@ -509,21 +517,12 @@ CREATE TABLE IF NOT EXISTS mdb_creators FOREIGN KEY (pid) REFERENCES mdb_identifiers (id) ); -CREATE TABLE IF NOT EXISTS mdb_views_databases -( - mdb_view_id bigint, - databases_id bigint REFERENCES mdb_databases (id), - created timestamp NOT NULL DEFAULT NOW(), - FOREIGN KEY (mdb_view_id, databases_id) REFERENCES mdb_VIEW (id, vdbid), - PRIMARY KEY (mdb_view_id, databases_id) -); - CREATE TABLE IF NOT EXISTS mdb_feed ( fDBID bigint, fID bigint, - fUserId INTEGER REFERENCES mdb_users (UserID), - fDataID INTEGER REFERENCES mdb_data (ID), + fUserId bigint REFERENCES mdb_users (UserID), + fDataID bigint REFERENCES mdb_data (ID), created timestamp NOT NULL DEFAULT NOW(), FOREIGN KEY (fDBID, fID) REFERENCES mdb_tables (tDBID, ID), PRIMARY KEY (fDBID, fID, fUserId, fDataID) @@ -531,7 +530,7 @@ CREATE TABLE IF NOT EXISTS mdb_feed CREATE TABLE IF NOT EXISTS mdb_update ( - uUserID INTEGER REFERENCES mdb_users (UserID), + uUserID bigint REFERENCES mdb_users (UserID), uDBID bigint REFERENCES mdb_databases (id), created timestamp NOT NULL DEFAULT NOW(), PRIMARY KEY (uUserID, uDBID) @@ -539,7 +538,7 @@ CREATE TABLE IF NOT EXISTS mdb_update CREATE TABLE IF NOT EXISTS mdb_access ( - aUserID INTEGER REFERENCES mdb_users (UserID), + aUserID bigint REFERENCES mdb_users (UserID), aDBID bigint REFERENCES mdb_databases (id), attime TIMESTAMP, download BOOLEAN, @@ -551,14 +550,14 @@ CREATE TABLE IF NOT EXISTS mdb_have_access ( hUserID bigint REFERENCES mdb_users (UserID), hDBID bigint REFERENCES mdb_databases (id), - hType ENUM('R', 'W'), + hType ENUM ('R', 'W'), created timestamp NOT NULL DEFAULT NOW(), PRIMARY KEY (hUserID, hDBID) ); CREATE TABLE IF NOT EXISTS mdb_owns ( - oUserID INTEGER REFERENCES mdb_users (UserID), + oUserID bigint REFERENCES mdb_users (UserID), oDBID bigint REFERENCES mdb_databases (ID), created timestamp NOT NULL DEFAULT NOW(), PRIMARY KEY (oUserID, oDBID) diff --git a/fda-metadata-db/setup-user.sh b/fda-metadata-db/setup-user.sh new file mode 100644 index 0000000000..63c5e77afe --- /dev/null +++ b/fda-metadata-db/setup-user.sh @@ -0,0 +1,5 @@ +#!/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}'; +EOF \ No newline at end of file diff --git a/fda-metadata-service/Dockerfile b/fda-metadata-service/Dockerfile index a727f81379..9b486066e9 100644 --- a/fda-metadata-service/Dockerfile +++ b/fda-metadata-service/Dockerfile @@ -22,8 +22,8 @@ RUN mvn -q clean package -DskipTests > /dev/null FROM openjdk:11-jre-slim as runtime ENV METADATA_DB=fda -ENV METADATA_USERNAME=postgres -ENV METADATA_PASSWORD=postgres +ENV METADATA_USERNAME=dbrepo +ENV METADATA_PASSWORD=dbrepo ENV GATEWAY_ENDPOINT=http://gateway-service:9095 ENV PID_BASE="https://example.com/pid/" ENV REPOSITORY_NAME="Example Repository" diff --git a/fda-metadata-service/pom.xml b/fda-metadata-service/pom.xml index d54686f8c3..43a00dab90 100644 --- a/fda-metadata-service/pom.xml +++ b/fda-metadata-service/pom.xml @@ -60,6 +60,12 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> + <!-- Datasource --> + <dependency> + <groupId>org.mariadb.jdbc</groupId> + <artifactId>mariadb-java-client</artifactId> + <version>${mariadb.version}</version> + </dependency> <!-- Monitoring --> <dependency> <groupId>io.micrometer</groupId> diff --git a/fda-query-service/Dockerfile b/fda-query-service/Dockerfile index b2dac0fa18..dab9e245a7 100644 --- a/fda-query-service/Dockerfile +++ b/fda-query-service/Dockerfile @@ -23,8 +23,8 @@ RUN mvn -q clean package -DskipTests > /dev/null FROM openjdk:11-jre-slim as runtime ENV METADATA_DB=fda -ENV METADATA_USERNAME=postgres -ENV METADATA_PASSWORD=postgres +ENV METADATA_USERNAME=dbrepo +ENV METADATA_PASSWORD=dbrepo ENV BROKER_USERNAME=fda ENV BROKER_PASSWORD=fda ENV GATEWAY_ENDPOINT=http://gateway-service:9095 diff --git a/fda-table-service/Dockerfile b/fda-table-service/Dockerfile index e0849c308f..837ca53a56 100644 --- a/fda-table-service/Dockerfile +++ b/fda-table-service/Dockerfile @@ -24,8 +24,8 @@ FROM openjdk:11-jre-slim as runtime ENV multipart.location=/tmp ENV METADATA_DB=fda -ENV METADATA_USERNAME=postgres -ENV METADATA_PASSWORD=postgres +ENV METADATA_USERNAME=dbrepo +ENV METADATA_PASSWORD=dbrepo ENV BROKER_USERNAME=fda ENV BROKER_PASSWORD=fda ENV SEARCH_ENDPOINT=search-service -- GitLab