Created
March 1, 2017 11:49
-
-
Save RazZziel/ba8b7760319e4e91c5cb79839e5648cc to your computer and use it in GitHub Desktop.
Stupid simple database migration management script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cd "$(dirname "$0")" | |
DB_USER="${DB_USER:-root}" | |
DB_PASS="${DB_PASS}" | |
DB_HOST="${DB_HOST:-localhost}" | |
DB_NAME="${DB_NAME}" | |
mysql_run() { | |
mysql -u"$DB_USER" -p"$DB_PASS" -h"$DB_HOST" "$DB_NAME" "$@" | |
} | |
mysql_run -e "CREATE TABLE IF NOT EXISTS migrations (filename VARCHAR(128) PRIMARY KEY, timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP)" | |
for i in *.sql; do | |
already_applied=$(mysql_run -e "SELECT filename FROM migrations WHERE filename = '$i'") | |
if [ ! -n "$already_applied" ]; then | |
if cat "$i" | mysql_run; then | |
echo "$i correctly applied" | |
mysql_run -e "INSERT INTO migrations (filename) VALUES ('$i')" | |
else | |
echo "!! Failed to apply $i" | |
fi | |
else | |
echo "$i already applied" | |
fi | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment