This repository has been archived on 2021-04-13. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
hbp-sp8-mip-local/load_data.sh
2018-02-05 19:53:36 +01:00

78 lines
2.2 KiB
Bash
Executable File

#!/bin/sh
# Copyright (c) 2018-2018
# Data Intensive Applications and Systems Labaratory (DIAS)
# Ecole Polytechnique Federale de Lausanne
#
# All Rights Reserved.
#
# Permission to use, copy, modify and distribute this software and its
# documentation is hereby granted, provided that both the copyright notice
# and this permission notice appear in all copies of the software, derivative
# works or modified versions, and any portions thereof, and that both notices
# appear in supporting documentation.
#
# This code is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE. THE AUTHORS AND ECOLE POLYTECHNIQUE FEDERALE DE LAUSANNE
# DISCLAIM ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE
# USE OF THIS SOFTWARE.
# Import settings
. ./settings.sh
# 1. Create all the DB at once
echo "Create databases..."
db_id=$(docker run --rm -d \
-e POSTGRES_USER="${DB_USER_ADMIN}" \
-e POSTGRES_PASSWORD="${DB_PASSWORD_ADMIN}" \
-e PGDATA="/data/pgdata" \
-v ${DB_DATA}:/data:rw \
-v ${DB_DATASETS}:/datasets:ro \
--network=${MIP_PRIVATE_NETWORK} \
--name ${DB_HOST} \
${DB_IMAGE}${DB_VERSION}
)
db_list=""
for f in ${DB_CREATE_LIST}
do
eval "t=\"\
-e DB${f}=\${DB_NAME${f}} \
-e USER${f}=\${DB_USER${f}} \
-e PASSWORD${f}=\${DB_PASSWORD${f}}\""
db_list="$db_list $t"
done
sleep 5
docker run --rm \
-e DB_HOST="${DB_HOST}" \
-e DB_PORT="${DB_PORT}" \
-e DB_ADMIN_USER="${DB_USER_ADMIN}" \
-e DB_ADMIN_PASSWORD="${DB_PASSWORD_ADMIN}" \
${db_list} \
--network=${MIP_PRIVATE_NETWORK} \
${DB_CREATE_IMAGE}${DB_CREATE_VERSION}
# 2. Pre-populate the DBs which needs it
for f in ${DB_SETUP_LIST}
do
eval "img=\${${f}_IMAGE}"
eval "version=\${${f}_VERSION}"
eval "db=\${${f}_DB}"
echo
echo "Executing ${img}${version}"
docker run --rm \
-e FLYWAY_HOST="${DB_HOST}" \
-e FLYWAY_PORT="${DB_PORT}" \
-e FLYWAY_USER="${DB_USER_ADMIN}" \
-e FLYWAY_PASSWORD="${DB_PASSWORD_ADMIN}" \
-e FLYWAY_DATABASE_NAME="${db}" \
--network=${MIP_PRIVATE_NETWORK} \
${img}${version}
done
docker stop ${db_id}