Normalize database names in postgres. Closes #2

This commit is contained in:
Jose Diaz-Gonzalez
2015-09-07 01:49:28 -04:00
parent 316fe8f7f0
commit ad4fae1b2a
2 changed files with 12 additions and 3 deletions

View File

@@ -48,8 +48,9 @@ case "$1" in
dokku_log_verbose_quiet "Creating container database" dokku_log_verbose_quiet "Creating container database"
IP=$(get_container_ip "$ID") IP=$(get_container_ip "$ID")
DATABASE_NAME="$(get_database_name $SERVICE)"
while true; do 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 continue
} }
break break
@@ -171,7 +172,8 @@ case "$1" in
ID=$(cat "$SERVICE_ROOT/ID") ID=$(cat "$SERVICE_ROOT/ID")
IP=$(get_container_ip "$ID") IP=$(get_container_ip "$ID")
PASSWORD=$(cat "$SERVICE_ROOT/PASSWORD") 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) $PLUGIN_COMMAND_PREFIX:info)

View File

@@ -246,7 +246,8 @@ service_url() {
local ID="$(cat "$SERVICE_ROOT/ID")" local ID="$(cat "$SERVICE_ROOT/ID")"
local IP="$(get_container_ip "$ID")" local IP="$(get_container_ip "$ID")"
local PASSWORD="$(cat "$SERVICE_ROOT/PASSWORD")" 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 () { is_container_status () {
@@ -265,3 +266,9 @@ get_service_name() {
local SERVICE="$1" local SERVICE="$1"
echo "dokku.${PLUGIN_COMMAND_PREFIX}.$SERVICE" 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 .- _
}