Make use of existing magic env variables for django and psql
This commit is contained in:
parent
5cfce209b6
commit
66ea5f3154
|
|
@ -12,7 +12,7 @@ else echo "CI is set to $CI";
|
|||
fi
|
||||
|
||||
# script should fail when any process returns non zero code
|
||||
set -ev
|
||||
set -e
|
||||
|
||||
# handle arguments
|
||||
SKIP_SETUP=false
|
||||
|
|
@ -37,35 +37,42 @@ done
|
|||
|
||||
echo "SKIP_SETUP = ${SKIP_SETUP}"
|
||||
|
||||
POSTGRES_DB=${POSTGRES_DB:-vbv_lernwelt}
|
||||
POSTGRES_HOST=${POSTGRES_HOST:-localhost}
|
||||
POSTGRES_PORT=${POSTGRES_PORT:-5432}
|
||||
POSTGRES_USER=${POSTGRES_USER:-postgres}
|
||||
# migrate env vars to the built-in postgres variables
|
||||
if [ -z ${PGDATABASE+x} ]; then # var is empty
|
||||
PGDATABASE=${POSTGRES_DB:-vbv_lernwelt};
|
||||
POSTGRES_DB=$PGDATABASE
|
||||
fi
|
||||
if [ -z ${PGHOST+x} ]; then # var is empty
|
||||
PGHOST=${POSTGRES_DB:-localhost};
|
||||
fi
|
||||
if [ -z ${PGPORT+x} ]; then # var is empty
|
||||
PGPORT=${POSTGRES_PORT:-5432}
|
||||
fi
|
||||
if [ -z ${PGUSER+x} ]; then # var is empty
|
||||
PGUSER=${POSTGRES_USER:-postgres}
|
||||
fi
|
||||
DJANGO_PORT=${DJANGO_PORT:-8000}
|
||||
|
||||
mypsql() {
|
||||
psql -h "${POSTGRES_HOST}" -p "${POSTGRES_PORT}" -U "${POSTGRES_USER}" "$@"
|
||||
}
|
||||
|
||||
if [ "$SKIP_SETUP" = false ]; then
|
||||
# TODO: in heroku we must do a `pg:resets` to reset the db
|
||||
echo "Check postgres connection"
|
||||
mypsql -c "SELECT 1"
|
||||
echo "Drop all connections to $POSTGRES_DB"
|
||||
mypsql -c "SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = '$POSTGRES_DB' AND pid <> pg_backend_pid();" > /dev/null 2>&1
|
||||
echo "Drop database: $POSTGRES_DB"
|
||||
mypsql -c "drop database if exists $POSTGRES_DB;"
|
||||
echo "Create database: $POSTGRES_DB"
|
||||
mypsql -c "create database $POSTGRES_DB;"
|
||||
psql -d postgres -c "SELECT 1" # use default db to connect to
|
||||
echo "Drop all connections to $PGDATABASE"
|
||||
psql -c "SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = '$POSTGRES_DB' AND pid <> pg_backend_pid();" > /dev/null 2>&1
|
||||
echo "Drop database: $PGDATABASE"
|
||||
psql -d postgres -c "drop database if exists $PGDATABASE;" # use default db to drop another database, can't drop the currently connected database
|
||||
echo "Create database: $PGDATABASE"
|
||||
psql -d postgres -c "create database $PGDATABASE;" # use default database, as the set database does not exist currently
|
||||
|
||||
echo "initialize database for django"
|
||||
python3 server/manage.py createcachetable --settings="$DJANGO_SETTINGS_MODULE"
|
||||
python3 server/manage.py migrate --settings="$DJANGO_SETTINGS_MODULE"
|
||||
python3 server/manage.py create_default_users --settings="$DJANGO_SETTINGS_MODULE"
|
||||
python3 server/manage.py create_default_courses --settings="$DJANGO_SETTINGS_MODULE"
|
||||
python server/manage.py createcachetable
|
||||
python server/manage.py migrate
|
||||
python server/manage.py create_default_users
|
||||
python server/manage.py create_default_courses
|
||||
|
||||
# make django translations
|
||||
(cd server && python3 manage.py compilemessages --settings="$DJANGO_SETTINGS_MODULE")
|
||||
(cd server && python manage.py compilemessages)
|
||||
else
|
||||
# TODO: can we reset important data without resetting the database?
|
||||
echo "Skip database setup"
|
||||
|
|
@ -73,7 +80,7 @@ else
|
|||
fi
|
||||
|
||||
if [ "$START_BACKGROUND" = true ]; then
|
||||
cd server && python3 manage.py runserver "${DJANGO_PORT}" --settings="$DJANGO_SETTINGS_MODULE" > /dev/null &
|
||||
cd server && python manage.py runserver "${DJANGO_PORT}" > /dev/null &
|
||||
else
|
||||
cd server && python3 manage.py runserver "${DJANGO_PORT}" --settings="$DJANGO_SETTINGS_MODULE"
|
||||
cd server && python manage.py runserver "${DJANGO_PORT}"
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -6,6 +6,6 @@ cd "${0%/*}"
|
|||
export IT_APP_ENVIRONMENT=development
|
||||
export DJANGO_SETTINGS_MODULE=config.settings.test_cypress
|
||||
export DJANGO_PORT=8001
|
||||
export POSTGRES_DB=vbv_lernwelt_cypress
|
||||
export PGDATABASE=vbv_lernwelt_cypress
|
||||
|
||||
./prepare_server.sh "$@"
|
||||
|
|
|
|||
Loading…
Reference in New Issue