#!/usr/bin/env bash set -e function run_psql { psql -q -v ON_ERROR_STOP=1 "$@" } function script_dir { val="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" echo "$val" } base=$(script_dir) echo echo "Installing Database" echo "Version: $(cat $base/VERSION.txt)" echo "= = =" if [ -z ${DATABASE_NAME+x} ]; then database=message_store echo "DATABASE_NAME is not set. Using: $database." export DATABASE_NAME=$database else database=$DATABASE_NAME fi if [ -z ${CREATE_DATABASE+x} ]; then CREATE_DATABASE="on" fi create_database=true if [ "$CREATE_DATABASE" = "off" ] ; then create_database=false fi if [ -z ${PGOPTIONS+x} ]; then export PGOPTIONS='-c client_min_messages=warning' fi function create-user { base=$(script_dir) echo "» message_store role" run_psql postgres -f $base/roles/message-store.sql } function create-database { echo "» $database database" createdb $database } function create-schema { echo "» message_store schema" run_psql $database -f $base/schema/message-store.sql } function create-extensions { base=$(script_dir) echo "» pgcrypto extension" run_psql $database -f $base/extensions/pgcrypto.sql } function create-table { base=$(script_dir) echo "» messages table" run_psql $database -f $base/tables/messages.sql } echo echo "Creating User" echo "- - -" create-user echo echo "Creating Database" echo "- - -" if [ "$create_database" = true ] ; then create-database else echo "Database creation is deactivated. Not creating the database." fi echo echo "Creating Schema" echo "- - -" create-schema echo echo "Creating Extensions" echo "- - -" create-extensions echo echo "Creating Table" echo "- - -" create-table echo # Install functions source $base/install-functions.sh # Install indexes source $base/install-indexes.sh # Install views source $base/install-views.sh # Install privileges source $base/install-privileges.sh echo "= = =" echo "Done Installing Database" echo "Version: $(cat $base/VERSION.txt)" echo