
+ Adding new bootstrapping script for Docker testing pipeline This build-database script is what is going to setup things like our tables for us so that we can actually run our test queries ! Basically turning off the ci right now since its going through some large breaking changes It's going to be broken for a while so there's no point in running it into a wall of predictable failures
66 lines
1.5 KiB
Bash
66 lines
1.5 KiB
Bash
#!/bin/bash
|
|
|
|
# Points to the folder that contains all pertinent database tables
|
|
# Each table directory contains:
|
|
# dir/
|
|
# up.sql
|
|
# down.sql
|
|
|
|
|
|
# First some parameter checks
|
|
if [ ! $1 ];then
|
|
echo Failure: Insufficient arguments provided
|
|
echo ./build-db.sh /migrations/folder/path
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! $2 ];then
|
|
echo Failure: Insufficient arguments provided
|
|
echo ./build-db.sh /migrations/folder/path /path/to/.env file
|
|
exit 1
|
|
fi
|
|
|
|
migration_loc=$1
|
|
env_path=$2
|
|
|
|
source $env_path
|
|
|
|
# This is kinda dumb but we have to check and make sure the sample default user
|
|
# configuration is all there
|
|
if [ ! $DATABASE_NAME ];then
|
|
echo No DATABASE_NAME set
|
|
exit 1
|
|
fi
|
|
if [ ! $DATABASE_PASS ];then
|
|
echo No DATABASE_PASS set
|
|
exit 1
|
|
fi
|
|
if [ ! $DATABASE_USER ];then
|
|
echo No DATABASE_USER set
|
|
exit 1
|
|
fi
|
|
if [ ! $DATABASE_HOST ];then
|
|
echo No DATABASE_HOST set
|
|
exit 1
|
|
fi
|
|
if [ ! $DATABASE_PORT ];then
|
|
echo No DATABASE_PORT set
|
|
exit 1
|
|
fi
|
|
|
|
# Next we setup the database user
|
|
mysql -e "CREATE USER '$DATABASE_USER'@'$DATABASE_HOST' IDENTIFIED BY '$DATABASE_PASS';"
|
|
# Yet another reason to not use this in prod to setup you're database
|
|
mysql -e "GRANT ALL PRIVILEGES ON *.* TO '$DATABASE_USER'@'$DATABASE_HOST';"
|
|
|
|
# First we'll setup the databse that we want to use
|
|
for dir in $(ls $migration_loc);do
|
|
# Port field is ignored in this script as its straight up not used in Docker tests
|
|
echo Migrating $dir
|
|
mysql -u $DATABASE_USER -p $DATABASE_PASS \
|
|
-h $DATABASE_HOST -D $DATABASE_NAME \
|
|
< $dir/up.sql
|
|
done
|
|
|
|
|