From ad4fae1b2a8579e28109eedffbfadd573d228fbe Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Mon, 7 Sep 2015 01:49:28 -0400 Subject: [PATCH] Normalize database names in postgres. Closes #2 --- commands | 6 ++++-- functions | 9 ++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/commands b/commands index 527d7a7..0cc1a0c 100755 --- a/commands +++ b/commands @@ -48,8 +48,9 @@ case "$1" in dokku_log_verbose_quiet "Creating container database" IP=$(get_container_ip "$ID") + DATABASE_NAME="$(get_database_name $SERVICE)" while true; do - PGPASSWORD=$password psql --quiet -h "$IP" -p 5432 -U postgres --command "CREATE DATABASE $SERVICE;" &>/dev/null || { + PGPASSWORD=$password psql --quiet -h "$IP" -p 5432 -U postgres --command "CREATE DATABASE $DATABASE_NAME;" &>/dev/null || { continue } break @@ -171,7 +172,8 @@ case "$1" in ID=$(cat "$SERVICE_ROOT/ID") IP=$(get_container_ip "$ID") PASSWORD=$(cat "$SERVICE_ROOT/PASSWORD") - PGPASSWORD="$PASSWORD" psql -h "$IP" -U postgres + DATABASE_NAME="$(get_database_name $SERVICE)" + PGPASSWORD="$PASSWORD" psql -h "$IP" -U postgres -d "$DATABASE_NAME" ;; $PLUGIN_COMMAND_PREFIX:info) diff --git a/functions b/functions index 83e9b36..f8265d7 100755 --- a/functions +++ b/functions @@ -246,7 +246,8 @@ service_url() { local ID="$(cat "$SERVICE_ROOT/ID")" local IP="$(get_container_ip "$ID")" local PASSWORD="$(cat "$SERVICE_ROOT/PASSWORD")" - echo "$PLUGIN_SCHEME://postgres:$PASSWORD@$IP:${PLUGIN_DATASTORE_PORTS[0]}/$SERVICE" + local DATABASE_NAME="$(get_database_name $SERVICE)" + echo "$PLUGIN_SCHEME://postgres:$PASSWORD@$IP:${PLUGIN_DATASTORE_PORTS[0]}/$DATABASE_NAME" } is_container_status () { @@ -265,3 +266,9 @@ get_service_name() { local SERVICE="$1" echo "dokku.${PLUGIN_COMMAND_PREFIX}.$SERVICE" } + +get_database_name() { + # postgres does not like special characters in database names + # so we need to normalize them out + echo "$1" | tr .- _ +}