diff --git a/setup.bat b/setup.bat index 2fbcc83..a8e26df 100644 --- a/setup.bat +++ b/setup.bat @@ -147,15 +147,41 @@ echo. REM Step 6: Wait for database if "%DB%"=="mysql" ( - echo Waiting for database... - timeout /t 5 /nobreak >nul - echo Database ready + echo Waiting for MySQL to be ready... + set DB_READY=0 + for /L %%i in (1,1,30) do ( + docker-compose exec -T app php -r "new PDO('mysql:host=mysql;dbname=laravel', 'laravel', 'secret');" >nul 2>&1 + if !errorlevel! equ 0 ( + set DB_READY=1 + goto :mysql_ready + ) + timeout /t 1 /nobreak >nul + ) + :mysql_ready + if !DB_READY! equ 1 ( + echo MySQL ready + ) else ( + echo WARNING: MySQL may not be fully ready yet + ) echo. ) if "%DB%"=="pgsql" ( - echo Waiting for database... - timeout /t 5 /nobreak >nul - echo Database ready + echo Waiting for PostgreSQL to be ready... + set DB_READY=0 + for /L %%i in (1,1,30) do ( + docker-compose exec -T app php -r "new PDO('pgsql:host=pgsql;dbname=laravel', 'laravel', 'secret');" >nul 2>&1 + if !errorlevel! equ 0 ( + set DB_READY=1 + goto :pgsql_ready + ) + timeout /t 1 /nobreak >nul + ) + :pgsql_ready + if !DB_READY! equ 1 ( + echo PostgreSQL ready + ) else ( + echo WARNING: PostgreSQL may not be fully ready yet + ) echo. )