Skip to content
This repository was archived by the owner on Oct 12, 2020. It is now read-only.

Fix database migration script. #86

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
</changeSet>

<changeSet author="Michael Gabelmann" id="db_env_02_app_user">
<validCheckSum>ANY</validCheckSum>
<sql>
CREATE USER ${POSTGRES_APP_USER} WITH PASSWORD '${POSTGRES_APP_PASS}';
</sql>
Expand Down
93 changes: 60 additions & 33 deletions database/migrate-db.sh
Original file line number Diff line number Diff line change
@@ -1,49 +1,76 @@
#!/usr/bin/env bash
SCRIPTDIR=$(dirname "$0")

echo "Running Liquibase"
echo -e "Running Liquibase ..."\\n

# Postgres admin user is 'postgres'
export PG_ADMIN_USER=postgres
export PG_ADMIN_PASSWORD=
export PG_ADMIN_USER=${PG_ADMIN_USER:-postgres}
export PG_ADMIN_PASSWORD=${PG_ADMIN_PASSWORD:-${POSTGRESQL_ADMIN_PASSWORD}}

#schema to use for liquibase tables (must exist)
export PG_DEFAULT_SCHEMA=public
export PG_USER=${PG_USER:-${PGUSER:-shersched}}
export PG_PASSWORD=${PG_PASSWORD:-${PGPASSWORD}}

#postgres connection info and database
export PG_HOST=localhost
export POSTGRES_SERVICE_PORT=5432
export POSTGRES_DATABASE=appdb
# Schema to use for liquibase tables (must exist)
export PG_DEFAULT_SCHEMA=${PG_DEFAULT_SCHEMA:-public}

#application user information
export POSTGRES_APP_USER=shersched
export POSTGRES_APP_PASS=
# Postgres connection info and database
export PG_HOST=${PG_HOST:-${PGHOST:-localhost}}
export POSTGRES_SERVICE_PORT=${POSTGRES_SERVICE_PORT:-5432}

#catalog and schema to use for sheriff scheduling application
export POSTGRES_CATALOG=appdb
export PG_DATABASE=postgres
# shersched
# Catalog and schema to use for sheriff scheduling application
export POSTGRES_CATALOG=${POSTGRES_CATALOG:-appdb}
export PG_DATABASE=${PG_DATABASE:-${POSTGRES_DATABASE:-${POSTGRESQL_DATABASE:-${PGDATABASE:-appdb}}}}
export API_DATABASE_SCHEMA=${API_DATABASE_SCHEMA:-shersched}
export POSTGRES_EXT_SCHEMA=${POSTGRES_EXT_SCHEMA:-extensions}

export LIQUIBASE_CONTEXTS=${LIQUIBASE_CONTEXTS:-${API_DATA_CONTEXTS}}

cd "${SCRIPTDIR}/liquibase/"

pushd "${SCRIPTDIR}/liquibase/" >/dev/null
echo "pwd: `pwd`"
echo "env: `env | grep PG_`"
echo "jdbc url: jdbc:postgresql://$PG_HOST:$POSTGRES_SERVICE_PORT/$PG_DATABASE"
echo "env:"
echo -e "\tPG_ADMIN_USER: ${PG_ADMIN_USER}"
echo -e "\tPG_ADMIN_PASSWORD: ${PG_ADMIN_PASSWORD}"
echo -e "\tPG_USER: ${PG_USER}"
echo -e "\tPG_PASSWORD: ${PG_PASSWORD}"
echo -e "\tPG_DEFAULT_SCHEMA: ${PG_DEFAULT_SCHEMA}"
echo -e "\tPG_HOST: ${PG_HOST}"
echo -e "\tPOSTGRES_SERVICE_PORT: ${POSTGRES_SERVICE_PORT}"
echo -e "\tPOSTGRES_CATALOG: ${POSTGRES_CATALOG}"
echo -e "\tPG_DATABASE: ${PG_DATABASE}"
echo -e "\tAPI_DATABASE_SCHEMA: ${API_DATABASE_SCHEMA}"
echo -e "\tPOSTGRES_EXT_SCHEMA: ${POSTGRES_EXT_SCHEMA}"
echo -e "\tLIQUIBASE_CONTEXTS: ${LIQUIBASE_CONTEXTS}"

echo -e "jdbc url: jdbc:postgresql://$PG_HOST:$POSTGRES_SERVICE_PORT/$PG_DATABASE"\\n

echo liquibase --driver=org.postgresql.Driver \
--contexts="$LIQUIBASE_CONTEXTS" \
--changeLogFile=shersched.db.changelog.MASTER.xml \
--url="jdbc:postgresql://$PG_HOST:$POSTGRES_SERVICE_PORT/$PG_DATABASE" \
--username=$PG_ADMIN_USER \
--password=$PG_ADMIN_PASSWORD \
--defaultSchemaName=$PG_DEFAULT_SCHEMA \
--logLevel=info update \
-DPOSTGRES_APP_USER=$PG_USER \
-DPOSTGRES_APP_PASS=$PG_PASSWORD \
-DPOSTGRES_CATALOG=$PG_DATABASE \
-DPOSTGRES_SCHEMA=$API_DATABASE_SCHEMA \
-DPOSTGRES_EXT_SCHEMA=$POSTGRES_EXT_SCHEMA

echo
liquibase --driver=org.postgresql.Driver \
--contexts="$LIQUIBASE_CONTEXTS" \
--changeLogFile=shersched.db.changelog.MASTER.xml \
--url="jdbc:postgresql://$PG_HOST:$POSTGRES_SERVICE_PORT/$PG_DATABASE" \
--username=$PG_ADMIN_USER \
--password=$PG_ADMIN_PASSWORD \
--defaultSchemaName=$PG_DEFAULT_SCHEMA \
--logLevel=info update \
-DPOSTGRES_APP_USER=$PG_USER \
-DPOSTGRES_APP_PASS=$PG_PASSWORD \
-DPOSTGRES_CATALOG=$PG_DATABASE \
-DPOSTGRES_SCHEMA=$API_DATABASE_SCHEMA \
-DPOSTGRES_EXT_SCHEMA=$POSTGRES_EXT_SCHEMA
--contexts="$LIQUIBASE_CONTEXTS" \
--changeLogFile=shersched.db.changelog.MASTER.xml \
--url="jdbc:postgresql://$PG_HOST:$POSTGRES_SERVICE_PORT/$PG_DATABASE" \
--username=$PG_ADMIN_USER \
--password=$PG_ADMIN_PASSWORD \
--defaultSchemaName=$PG_DEFAULT_SCHEMA \
--logLevel=info update \
-DPOSTGRES_APP_USER=$PG_USER \
-DPOSTGRES_APP_PASS=$PG_PASSWORD \
-DPOSTGRES_CATALOG=$PG_DATABASE \
-DPOSTGRES_SCHEMA=$API_DATABASE_SCHEMA \
-DPOSTGRES_EXT_SCHEMA=$POSTGRES_EXT_SCHEMA

echo "Finished Liquibase"

popd >/dev/null
3 changes: 3 additions & 0 deletions docker/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ services:
- SYS_DEV_SA_SITEMINDER_ID=${SYS_SA_SITEMINDER_ID}
- SYS_DEV_SA_AUTH_ID=${SYS_SA_AUTH_ID}
- SYS_DEFAULT_LOCATION=${SYS_DEFAULT_LOCATION}

- PG_ADMIN_USER=postgres
- PG_ADMIN_PASSWORD=${POSTGRESQL_ADMIN_PASSWORD}
networks:
- sheriff-scheduling
ports:
Expand Down