Docker-PHP/laravel/migrate.runit

44 lines
No EOL
1.3 KiB
Bash

#!/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
# 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