This commit is contained in:
+36
-1
@@ -22,14 +22,49 @@ composer run dev
|
||||
Abra http://127.0.0.1:8000. O comando inicia Laravel, o worker da fila e Vite.
|
||||
Use Ctrl+C para terminar. A base conserva os dados entre arranques.
|
||||
|
||||
`composer run dev` aguarda até 900 segundos se o PostgreSQL estiver indisponível
|
||||
ou em recuperação. Mostra o motivo e o progresso, sem revelar credenciais.
|
||||
Erros de autenticação ou de base inexistente interrompem o arranque imediatamente.
|
||||
O diagnóstico directo `php artisan portal:dev-check` continua sem espera;
|
||||
use `--wait=900` para aguardar. O comando não inicia Docker nem executa migrations.
|
||||
|
||||
O script de arranque executa estes passos, parando no primeiro erro:
|
||||
|
||||
```powershell
|
||||
docker compose --env-file .env -f deploy/local/compose.yaml up -d --wait
|
||||
docker compose --env-file .env -f deploy/local/compose.yaml up -d --wait --wait-timeout 900
|
||||
php tools/local-qa-bootstrap.php
|
||||
composer run dev
|
||||
```
|
||||
|
||||
O `start.ps1` usa `--wait-timeout 900`. O healthcheck admite 600 segundos de
|
||||
arranque antes de contar falhas e reconhece imediatamente um servidor pronto.
|
||||
O Compose concede 60 segundos para um encerramento normal do PostgreSQL.
|
||||
|
||||
### PostgreSQL em recuperação
|
||||
|
||||
Em 20/10/2026, os registos mostraram um encerramento incorrecto seguido de
|
||||
recuperação entre 09:59 e 10:07 (Africa/Johannesburg). Durante esse período,
|
||||
o servidor recusava ligações com `the database system is in recovery mode`.
|
||||
O teste anterior ocultava a causa e terminava na primeira falha.
|
||||
|
||||
Se voltar a acontecer, deixe a recuperação concluir e consulte:
|
||||
|
||||
```powershell
|
||||
docker compose --env-file .env -f deploy/local/compose.yaml ps -a
|
||||
docker compose --env-file .env -f deploy/local/compose.yaml logs --tail 40 postgres
|
||||
php artisan portal:dev-check --wait=900
|
||||
```
|
||||
|
||||
Se o contentor estiver parado, execute `./deploy/local/start.ps1` com Docker
|
||||
Desktop iniciado. Não remova o volume nem reinicie repetidamente durante a
|
||||
recuperação. Para parar a base normalmente, use
|
||||
`docker compose --env-file .env -f deploy/local/compose.yaml stop postgres`
|
||||
antes de encerrar Docker Desktop ou o computador.
|
||||
|
||||
A espera, os diagnósticos e estes prazos são escolhas técnicas para a correcção
|
||||
solicitada em 20/10/2026, sob as decisões Tempo de AGENTS.md; não criam regras
|
||||
de negócio nem alteram dados activos.
|
||||
|
||||
O preparador verifica configuração e identidade real da base antes de migrar.
|
||||
Só admite `investmoz_local_test`, TCP local e porta real 55441, sem DB_URL nem
|
||||
configuração em cache. Executa migrations em `testing`, como exigem as guardas
|
||||
|
||||
@@ -4,6 +4,7 @@ services:
|
||||
image: postgis/postgis:17-3.5
|
||||
command: ['postgres', '-p', '55441']
|
||||
restart: unless-stopped
|
||||
stop_grace_period: 60s
|
||||
environment:
|
||||
POSTGRES_DB: investmoz_local_test
|
||||
POSTGRES_USER: investmoz_test
|
||||
@@ -16,6 +17,7 @@ services:
|
||||
test: ['CMD-SHELL', 'pg_isready -p 55441 -U investmoz_test -d investmoz_local_test']
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
start_period: 600s
|
||||
retries: 20
|
||||
volumes:
|
||||
postgres-qa:
|
||||
|
||||
@@ -2,7 +2,7 @@ $ErrorActionPreference = 'Stop'
|
||||
$projectRoot = (Resolve-Path (Join-Path $PSScriptRoot '../..')).Path
|
||||
Push-Location $projectRoot
|
||||
try {
|
||||
docker compose --progress plain --env-file .env -f deploy/local/compose.yaml up -d --wait --wait-timeout 120
|
||||
docker compose --progress plain --env-file .env -f deploy/local/compose.yaml up -d --wait --wait-timeout 900
|
||||
if ($LASTEXITCODE -ne 0) { throw 'Inicie Docker Desktop e verifique o serviço PostgreSQL QA.' }
|
||||
php tools/local-qa-bootstrap.php
|
||||
if ($LASTEXITCODE -ne 0) { throw 'Preparação QA interrompida; veja a mensagem acima.' }
|
||||
|
||||
Reference in New Issue
Block a user