From 09f6a643d916499a195a7b398ecb8a14e7ee020f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20B=C3=B6hmke?= Date: Sat, 23 Sep 2017 14:38:41 +0200 Subject: [PATCH] added app:clear_init --- README.md | 6 ++++++ entrypoint.sh | 43 ++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 46 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 88bdf1c..d30cc91 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,12 @@ services: ``` +Possible Commands +----------------- +- **app:init**: (Default) Create database and user if not exist +- **app:clear_init**: Like `app:init` but remove all tables from database + + Available Configuration Parameters ---------------------------------- diff --git a/entrypoint.sh b/entrypoint.sh index ac2941f..4e025d9 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -57,6 +57,16 @@ check_database_connection() { } +postgresql_clear_init() { + result=`psql -h$DB_HOST -p $DB_PORT -U$DB_ROOT_USER -tc "SELECT datname FROM pg_catalog.pg_database WHERE datname like '$DB_DATABASE';"` + if [ $result ]; then + psql -h$DB_HOST -p $DB_PORT -U$DB_ROOT_USER -tc "drop database if exists $DB_DATABASE;" > /dev/null + echo "Removed database \"$DB_DATABASE\"" + fi + + postgresql_init +} + postgresql_init() { result=`psql -h$DB_HOST -p $DB_PORT -U$DB_ROOT_USER -tc "SELECT datname FROM pg_catalog.pg_database WHERE datname like '$DB_DATABASE';"` if [ ! $result ]; then @@ -77,6 +87,17 @@ postgresql_init() { psql -h$DB_HOST -p $DB_PORT -U$DB_ROOT_USER -tc "GRANT ALL PRIVILEGES ON DATABASE $DB_DATABASE to $DB_USER;" > /dev/null } + +mysql_clear_init() { + result=`mysql -P $DB_PORT -u$DB_ROOT_USER -p$DB_ROOT_PASSWORD -h$DB_HOST -Bse "show databases like '$DB_DATABASE';"` + if [ $result ]; then + mysql -P $DB_PORT -u$DB_ROOT_USER -p$DB_ROOT_PASSWORD -h$DB_HOST -Bse "drop database if exists $DB_DATABASE;" + echo "Removed database \"$DB_DATABASE\"" + fi + + mysql_init +} + mysql_init() { result=`mysql -P $DB_PORT -u$DB_ROOT_USER -p$DB_ROOT_PASSWORD -h$DB_HOST -Bse "show databases like '$DB_DATABASE';"` if [ ! $result ]; then @@ -99,16 +120,32 @@ mysql_init() { case ${1} in - app:init) + app:init|app:clear_init) check_database_connection case ${DB_TYPE} in postgresql) - postgresql_init + case ${1} in + app:init) + postgresql_init + ;; + + app:clear_init) + postgresql_clear_init + ;; + esac ;; mysql) - mysql_init + case ${1} in + app:init) + mysql_init + ;; + + app:clear_init) + mysql_clear_init + ;; + esac ;; esac ;;