diff --git a/app-monolith/pom.xml b/app-monolith/pom.xml
index fb85b0f..ebef45f 100644
--- a/app-monolith/pom.xml
+++ b/app-monolith/pom.xml
@@ -82,6 +82,11 @@
42.1.4
runtime
+
+ org.liquibase
+ liquibase-core
+ 3.5.5
+
org.spockframework
spock-core
diff --git a/app-monolith/src/main/resources/application.properties b/app-monolith/src/main/resources/application.properties
index 37b8100..6ac7266 100644
--- a/app-monolith/src/main/resources/application.properties
+++ b/app-monolith/src/main/resources/application.properties
@@ -5,5 +5,7 @@ spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=
spring.datasource.driver-class-name=org.postgresql.Driver
+liquibase.change-log=classpath:/schema/db.changelog.xml
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n
logging.level.=error
+
diff --git a/database/schema/commons.sql b/app-monolith/src/main/resources/schema/commons.sql
similarity index 100%
rename from database/schema/commons.sql
rename to app-monolith/src/main/resources/schema/commons.sql
diff --git a/database/schema/db.changelog.xml b/app-monolith/src/main/resources/schema/db.changelog.xml
similarity index 100%
rename from database/schema/db.changelog.xml
rename to app-monolith/src/main/resources/schema/db.changelog.xml
diff --git a/database/schema/delivery-planning.sql b/app-monolith/src/main/resources/schema/delivery-planning.sql
similarity index 100%
rename from database/schema/delivery-planning.sql
rename to app-monolith/src/main/resources/schema/delivery-planning.sql
diff --git a/database/schema/demand-forecasting.sql b/app-monolith/src/main/resources/schema/demand-forecasting.sql
similarity index 100%
rename from database/schema/demand-forecasting.sql
rename to app-monolith/src/main/resources/schema/demand-forecasting.sql
diff --git a/database/schema/product-management.sql b/app-monolith/src/main/resources/schema/product-management.sql
similarity index 100%
rename from database/schema/product-management.sql
rename to app-monolith/src/main/resources/schema/product-management.sql
diff --git a/database/schema/production-planning.sql b/app-monolith/src/main/resources/schema/production-planning.sql
similarity index 100%
rename from database/schema/production-planning.sql
rename to app-monolith/src/main/resources/schema/production-planning.sql
diff --git a/database/schema/shortages-prediction.sql b/app-monolith/src/main/resources/schema/shortages-prediction.sql
similarity index 100%
rename from database/schema/shortages-prediction.sql
rename to app-monolith/src/main/resources/schema/shortages-prediction.sql
diff --git a/database/Dockerfile b/database/Dockerfile
deleted file mode 100644
index c5c42bf..0000000
--- a/database/Dockerfile
+++ /dev/null
@@ -1,17 +0,0 @@
-FROM postgres:10
-MAINTAINER MichaĆ Michaluk
-
-RUN apt-get update -y
-RUN apt-get install openjdk-8-jre-headless -y
-
-ADD http://central.maven.org/maven2/org/liquibase/liquibase-core/3.4.2/liquibase-core-3.4.2.jar /lib/liquibase.jar
-ADD http://central.maven.org/maven2/org/postgresql/postgresql/9.4.1212/postgresql-9.4.1212.jar /lib/postgresql.jar
-RUN chmod a+r /lib/liquibase.jar
-RUN chmod a+r /lib/postgresql.jar
-
-ADD schema /schema
-ADD initdb.sql /docker-entrypoint-initdb.d/
-ADD start-and-migrate.sh /
-RUN chmod +x /start-and-migrate.sh
-
-CMD /start-and-migrate.sh postgres
diff --git a/database/initdb.sql b/database/initdb.sql
deleted file mode 100644
index e2be0ec..0000000
--- a/database/initdb.sql
+++ /dev/null
@@ -1,2 +0,0 @@
-
--- see schema directory
diff --git a/database/start-and-migrate.sh b/database/start-and-migrate.sh
deleted file mode 100644
index 61592f2..0000000
--- a/database/start-and-migrate.sh
+++ /dev/null
@@ -1,173 +0,0 @@
-#!/usr/bin/env bash
-set -e
-
-# usage: file_env VAR [DEFAULT]
-# ie: file_env 'XYZ_DB_PASSWORD' 'example'
-# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of
-# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature)
-file_env() {
- local var="$1"
- local fileVar="${var}_FILE"
- local def="${2:-}"
- if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then
- echo >&2 "error: both $var and $fileVar are set (but are exclusive)"
- exit 1
- fi
- local val="$def"
- if [ "${!var:-}" ]; then
- val="${!var}"
- elif [ "${!fileVar:-}" ]; then
- val="$(< "${!fileVar}")"
- fi
- export "$var"="$val"
- unset "$fileVar"
-}
-
-if [ "${1:0:1}" = '-' ]; then
- set -- postgres "$@"
-fi
-
-# allow the container to be started with `--user`
-if [ "$1" = 'postgres' ] && [ "$(id -u)" = '0' ]; then
- mkdir -p "$PGDATA"
- chown -R postgres "$PGDATA"
- chmod 700 "$PGDATA"
-
- mkdir -p /var/run/postgresql
- chown -R postgres /var/run/postgresql
- chmod 775 /var/run/postgresql
-
- # Create the transaction log directory before initdb is run (below) so the directory is owned by the correct user
- if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
- mkdir -p "$POSTGRES_INITDB_XLOGDIR"
- chown -R postgres "$POSTGRES_INITDB_XLOGDIR"
- chmod 700 "$POSTGRES_INITDB_XLOGDIR"
- fi
-
- exec gosu postgres "$BASH_SOURCE" "$@"
-fi
-
-if [ "$1" = 'postgres' ]; then
- mkdir -p "$PGDATA"
- chown -R "$(id -u)" "$PGDATA" 2>/dev/null || :
- chmod 700 "$PGDATA" 2>/dev/null || :
-
- # look specifically for PG_VERSION, as it is expected in the DB dir
- if [ ! -s "$PGDATA/PG_VERSION" ]; then
- file_env 'POSTGRES_INITDB_ARGS'
- if [ "$POSTGRES_INITDB_XLOGDIR" ]; then
- export POSTGRES_INITDB_ARGS="$POSTGRES_INITDB_ARGS --xlogdir $POSTGRES_INITDB_XLOGDIR"
- fi
- eval "initdb --username=postgres $POSTGRES_INITDB_ARGS"
-
- # check password first so we can output the warning before postgres
- # messes it up
- file_env 'POSTGRES_PASSWORD'
- if [ "$POSTGRES_PASSWORD" ]; then
- pass="PASSWORD '$POSTGRES_PASSWORD'"
- authMethod=md5
- else
- # The - option suppresses leading tabs but *not* spaces. :)
- cat >&2 <<-'EOWARN'
- ****************************************************
- WARNING: No password has been set for the database.
- This will allow anyone with access to the
- Postgres port to access your database. In
- Docker's default configuration, this is
- effectively any other container on the same
- system.
-
- Use "-e POSTGRES_PASSWORD=password" to set
- it in "docker run".
- ****************************************************
- EOWARN
-
- pass=
- authMethod=trust
- fi
-
- {
- echo
- echo "host all all all $authMethod"
- } >> "$PGDATA/pg_hba.conf"
-
- # internal start of server in order to allow set-up using psql-client
- # does not listen on external TCP/IP and waits until start finishes
- PGUSER="${PGUSER:-postgres}" \
- pg_ctl -D "$PGDATA" \
- -o "-c listen_addresses='localhost'" \
- -w start
-
- file_env 'POSTGRES_USER' 'postgres'
- file_env 'POSTGRES_DB' "$POSTGRES_USER"
-
- psql=( psql -v ON_ERROR_STOP=1 )
-
- if [ "$POSTGRES_DB" != 'postgres' ]; then
- "${psql[@]}" --username postgres <<-EOSQL
- CREATE DATABASE "$POSTGRES_DB" ;
- EOSQL
- echo
- fi
-
- if [ "$POSTGRES_USER" = 'postgres' ]; then
- op='ALTER'
- else
- op='CREATE'
- fi
- "${psql[@]}" --username postgres <<-EOSQL
- $op USER "$POSTGRES_USER" WITH SUPERUSER $pass ;
- EOSQL
- echo
-
- psql+=( --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" )
-
- echo
- for f in /docker-entrypoint-initdb.d/*; do
- case "$f" in
- *.sh) echo "$0: running $f"; . "$f" ;;
- *.sql) echo "$0: running $f"; "${psql[@]}" -f "$f"; echo ;;
- *.sql.gz) echo "$0: running $f"; gunzip -c "$f" | "${psql[@]}"; echo ;;
- *) echo "$0: ignoring $f" ;;
- esac
- echo
- done
-
- PGUSER="${PGUSER:-postgres}" \
- pg_ctl -D "$PGDATA" -m fast -w stop
-
- echo
- echo 'PostgreSQL init process complete; ready for start up.'
- echo
- fi
-fi
-
-# migrate schema with liquibase if anything in /schema has changed
-SCHEMASUM=`find /schema/ -type f | xargs cat | md5sum | cut -d ' ' -f1`
-if [ ! -f $PGDATA/schema.md5 ] || [[ $(< $PGDATA/schema.md5) != "$SCHEMASUM" ]]; then
-
- PGUSER="${PGUSER:-postgres}" \
- pg_ctl -D "$PGDATA" \
- -o "-c listen_addresses='localhost'" \
- -w start
-
- echo
- echo 'Starting Schema Migration'
-
- java -jar /lib/liquibase.jar \
- --classpath=/lib/postgresql.jar \
- --changeLogFile=/schema/db.changelog.xml \
- --driver=org.postgresql.Driver \
- --url="jdbc:postgresql://localhost:5432/postgres" \
- --username="postgres" \
- --password="" \
- update
-
- echo
-
- PGUSER="${PGUSER:-postgres}" \
- pg_ctl -D "$PGDATA" -m fast -w stop
- echo "$SCHEMASUM" > $PGDATA/schema.md5
-fi
-
-exec "$@"