#!/usr/bin/env bash rm -f /var/lock/laravel_migration_underway \ /var/lock/laravel_migration_complete if [[ ${MIGRATE_ENABLE,,} == "on" ]]; then # Give a moment for services to wake up echo "[MIGRATION] Waiting until Laravel Ready." sleep 3 until [[ -f /var/lock/laravel_ready ]]; do sleep 1 done echo "[MIGRATION] Laravel is ready, running migrations..." cd /app || exit # Run migration touch /var/lock/laravel_migration_underway if [[ ${MIGRATE_CLEAN,,} == "on" ]]; then php /app/artisan migrate:fresh --force php /app/artisan migrate --force # First run will fail due to permissions. We can ignore, but need to migrate again to finish. else # If we run this on first commit, it is the same as migrate:fresh, first run may fail and we need to try one more time. php /app/artisan migrate --force || php /app/artisan migrate --force fi if [[ ${SEEDERS,,} == "on" ]]; then php /app/artisan db:seed -q fi rm /var/lock/laravel_migration_underway touch /var/lock/laravel_migration_complete echo "[MIGRATION] Migration complete!" else echo "[MIGRATION] Not enabled. Set MIGRATE_ENABLE = on to enable." fi # Sleep forever (and sleep again in case the sleep process is killed) while true; do sleep infinity done