diff --git a/deploy/lib.sh b/deploy/lib.sh index bc4b7e1e..c5e5c3e7 100644 --- a/deploy/lib.sh +++ b/deploy/lib.sh @@ -341,18 +341,26 @@ function db_user_postgresql() { local __dbpass=$4 local __psql=$5 - log "Creating user" - local _dbstatementuser="CREATE USER $__dbuser;" - sudo su - "$__pguser" -c "$__psql -c \"$_dbstatementuser\"" - + log "Creating user if it does not exist" + local _dbstatementusercheck="SELECT 1 FROM pg_roles WHERE rolname='$__dbuser';" + if sudo su - "$__pguser" -c "$__psql -tXAc \"$_dbstatementusercheck\"" | grep -q 1; then + log "User $__dbuser already exists" + else + local _dbstatementuser="CREATE USER $__dbuser;" + sudo su - "$__pguser" -c "$__psql -c \"$_dbstatementuser\"" + fi log "Adding password to user" local _dbstatementpass="ALTER USER $__dbuser WITH ENCRYPTED PASSWORD '$__dbpass';" sudo su - "$__pguser" -c "$__psql -c \"$_dbstatementpass\"" - log "Creating new database" - sudo su - "$__pguser" -c "$__psql -c 'ALTER ROLE $__dbuser WITH CREATEDB'" - sudo su - "$__pguser" -c "$__psql -c 'CREATE DATABASE $__pgdb'" - + log "Creating new database if it does not exist" + local _dbstatementdbcheck="SELECT 1 FROM pg_database WHERE datname='$__pgdb';" + if sudo su - "$__pguser" -c "$__psql -tXAc \"$_dbstatementdbcheck\"" | grep -q 1; then + log "Database $__pgdb already exists" + else + sudo su - "$__pguser" -c "$__psql -c 'ALTER ROLE $__dbuser WITH CREATEDB'" + sudo su - "$__pguser" -c "$__psql -c 'CREATE DATABASE $__pgdb'" + fi log "Make user owner of database" local _dbstatementowner="ALTER DATABASE $__pgdb OWNER TO $__dbuser;" sudo su - "$__pguser" -c "$__psql -c \"$_dbstatementowner\"" diff --git a/deploy/provision.sh b/deploy/provision.sh index 7196cf45..c3fa490d 100755 --- a/deploy/provision.sh +++ b/deploy/provision.sh @@ -192,7 +192,7 @@ _T_INT_PORT="9000" _T_PUB_PORT="443" _T_HOST="$ALL_HOST" _T_AUTH="none" -_T_LOGGING="stdout" +_T_LOGGING="db" _T_CARVER="db" # Admin Service @@ -208,8 +208,8 @@ _P_INT_PORT="9002" _P_PUB_PORT="8444" _P_HOST="$ALL_HOST" _P_AUTH="jwt" -_P_LOGGING="none" -_P_CARVER="none" +_P_LOGGING="db" +_P_CARVER="db" # Default admin credentials with random password _ADMIN_USER="admin"