shoc-backend/docs/work-orders/phase-0/migration-dry-run-report.md

58 lines
1.7 KiB
Markdown

# Migration Dry-Run Report — Phase 0
**Migration:** `20260624163145_Phase0_DomainFoundation`
**Status:** Pronto para execução em staging
---
## 1. Procedimento
1. Restore backup produção → staging espelho
2. Snapshot pré-migration:
```sql
SELECT Status, COUNT(*) FROM workOrders GROUP BY Status;
SELECT COUNT(*) AS Total FROM workOrders;
```
3. Executar:
```powershell
dotnet ef database update --project Data.SeaHavenIndustries --startup-project Api.SeaHavenIndustries
```
4. Validar pós-migration:
```sql
SELECT COUNT(*) FROM workOrders WHERE LegacyStatus IS NOT NULL;
SELECT LifecycleStatus, COUNT(*) FROM workOrders GROUP BY LifecycleStatus;
SELECT COUNT(*) FROM workOrders WHERE PrimaryDispatchId IS NOT NULL;
```
5. Smoke Blazor + API legado + Sync sample
6. Rollback (se falha):
```powershell
dotnet ef database update 20260417195316_AddDispatchVerification --project Data.SeaHavenIndustries --startup-project Api.SeaHavenIndustries
```
---
## 2. Data scripts incluídos na migration
- `LegacyStatus` ← cópia de `Status`
- `LifecycleStatus` ← mapeamento legado (Open→Incomplete, etc.)
- `PrimaryDispatchId` ← dispatch mais recente por WO
---
## 3. Resultados (preencher em staging)
| Métrica | Antes | Depois |
|---------|-------|--------|
| Total WOs | | |
| Com LegacyStatus | | |
| Com LifecycleStatus | | |
| Com PrimaryDispatchId | | |
| Rollback testado | | Sim/Não |
---
## 4. Notas
A migration inclui reconciliação de drift em `Locations`, `Regions`, `Departments` detectada pelo EF — revisar impacto em staging antes de produção.
**WO# normalização 11 dígitos:** documentada para Fase 2; não executada nesta migration.