diff --git a/docker/postgres-setup/init.sh b/docker/postgres-setup/init.sh index 635d17a22d..6c0adc8c69 100755 --- a/docker/postgres-setup/init.sh +++ b/docker/postgres-setup/init.sh @@ -1,5 +1,8 @@ #!/bin/sh export PGPASSWORD=$POSTGRES_PASSWORD +# workaround create database if not exists, check https://stackoverflow.com/a/36591842 +psql -U $POSTGRES_USERNAME -h $POSTGRES_HOST -p $POSTGRES_PORT -tc "SELECT 1 FROM pg_database WHERE datname = '${DATAHUB_DB_NAME}'" | grep -q 1 || psql -U $POSTGRES_USERNAME -h $POSTGRES_HOST -p $POSTGRES_PORT -c "CREATE DATABASE ${DATAHUB_DB_NAME}" + sed -e "s/DATAHUB_DB_NAME/${DATAHUB_DB_NAME}/g" /init.sql | tee -a /tmp/init-final.sql -psql -d $POSTGRES_DATABASENAME -U $POSTGRES_USERNAME -h $POSTGRES_HOST -p $POSTGRES_PORT < /tmp/init-final.sql +psql -d $DATAHUB_DB_NAME -U $POSTGRES_USERNAME -h $POSTGRES_HOST -p $POSTGRES_PORT < /tmp/init-final.sql diff --git a/docker/postgres-setup/init.sql b/docker/postgres-setup/init.sql index 00c6e1ef0b..cf39b8470d 100644 --- a/docker/postgres-setup/init.sql +++ b/docker/postgres-setup/init.sql @@ -1,8 +1,5 @@ --- create datahub database -CREATE DATABASE IF NOT EXISTS DATAHUB_DB_NAME; - -- create metadata aspect table -CREATE TABLE IF NOT EXISTS DATAHUB_DB_NAME.metadata_aspect_v2 ( +CREATE TABLE IF NOT EXISTS metadata_aspect_v2 ( urn varchar(500) not null, aspect varchar(200) not null, version bigint not null, @@ -15,7 +12,7 @@ CREATE TABLE IF NOT EXISTS DATAHUB_DB_NAME.metadata_aspect_v2 ( ); -- create default records for datahub user if not exists -CREATE TABLE temp_metadata_aspect_v2 LIKE metadata_aspect_v2; +CREATE TEMP TABLE temp_metadata_aspect_v2 AS TABLE metadata_aspect_v2; INSERT INTO temp_metadata_aspect_v2 (urn, aspect, version, metadata, createdon, createdby) VALUES( 'urn:li:corpuser:datahub', 'corpUserInfo',