· 9 years ago · Mar 01, 2017, 11:52 AM
1cd "$(dirname "$0")"
2
3DB_USER="${DB_USER:-root}"
4DB_PASS="${DB_PASS}"
5DB_HOST="${DB_HOST:-localhost}"
6DB_NAME="${DB_NAME}"
7
8mysql_run() {
9 mysql -u"$DB_USER" -p"$DB_PASS" -h"$DB_HOST" "$DB_NAME" "$@"
10}
11
12mysql_run -e "CREATE TABLE IF NOT EXISTS migrations (filename VARCHAR(128) PRIMARY KEY, timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP)"
13
14for i in *.sql; do
15 already_applied=$(mysql_run -e "SELECT filename FROM migrations WHERE filename = '$i'")
16
17 if [ ! -n "$already_applied" ]; then
18
19 if cat "$i" | mysql_run; then
20 echo "$i correctly applied"
21 mysql_run -e "INSERT INTO migrations (filename) VALUES ('$i')"
22 else
23 echo "!! Failed to apply $i"
24 fi
25 else
26 echo "$i already applied"
27 fi
28done