Tests now guard against accidental drop of kartsell_migration_test by throwing when the credential source DB is the destructive rehearsal target. Distinct credential DB (kartselldb_test) prevents config collision. AEG-X-004 evidence consolidated: rehearsal .trx files + preflight markdown documented. Schema 0032 (shadow_run_queued_status_contract) verified fresh/upgrade/recovery on isolated DB. AGENTS.md: Necessity-driven (guard against destructive accident); no new feature. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
3.2 KiB
AEG-X-004 DbUp recovery rehearsal evidence
Traceability
- WBS:
AEG-X-004 - Requirement:
REQ-DB-001 - Gate:
G0 - Source:
docs/CURRENT/WBS_EXECUTION_PROCEDURES.md,db/migrations/*.sql, DbUp integration tests - Assumption:
kartselldb_testis the approved credential/source database andkartsell_migration_testis the isolated destructive migration-rehearsal target. - Unknown: production rehearsal and DBA sign-off were not performed.
- Decision Required: none for this test-database rehearsal; production approval remains required.
Acceptance evidence
Commands were run sequentially to avoid concurrent build/output contention:
dotnet test tests/KArtSell.Integration.Tests/KArtSell.Integration.Tests.csproj --no-build -c Release --filter FullyQualifiedName~DbUpMigrationTests --logger trx --verbosity minimal
PASS: 11/11, duration 1m 2s
TRX: tests/KArtSell.Integration.Tests/TestResults/kjh20_KIMJAEHYUN-OFFI_2026-08-06_14_06_38_net10.0.trx
dotnet test tests/KArtSell.Integration.Tests/KArtSell.Integration.Tests.csproj --no-build -c Release --filter FullyQualifiedName~DbUpRecoveryTests --logger trx --verbosity minimal
PASS: 6/6, duration 28ms
TRX: tests/KArtSell.Integration.Tests/TestResults/kjh20_KIMJAEHYUN-OFFI_2026-08-06_14_07_41_net10.0.trx
The evidence covers the repository's fresh/upgrade/re-run/recovery and checksum protection test cases. No production database, automatic order, KIS submission, or migration mutation outside the isolated kartsell_migration_test fixture was used. The configured kartselldb_test database was not dropped or recreated.
Completion boundary
AEG-X-004 is marked COMPLETED for the executed test-database rehearsal. Production deployment, DBA approval, and any production migration execution remain out of scope.
Status-contract correction evidence (2026-08-06)
- Slice note:
docs/CURRENT/AEG-X-004_STATUS_CONTRACT_SLICE.md - Migration:
db/migrations/0032_shadow_run_queued_status_contract.sql - Regression:
DbUpMigrationTests.Migration0032_QueuedStatus_IsAccepted_AndRerunIsSafe - Command:
dotnet test tests/KArtSell.Integration.Tests/KArtSell.Integration.Tests.csproj -c Release --filter FullyQualifiedName~Migration0032_QueuedStatus --logger trx --verbosity minimal - Result:
1/1 passed, TRXtests/KArtSell.Integration.Tests/TestResults/kjh20_KIMJAEHYUN-OFFI_2026-08-06_14_15_10_net10.0.trx - Command:
dotnet test tests/KArtSell.Integration.Tests/KArtSell.Integration.Tests.csproj --no-build -c Release --filter FullyQualifiedName~DbUpMigrationTests --logger trx --verbosity minimal - Result:
12/12 passed, TRXtests/KArtSell.Integration.Tests/TestResults/kjh20_KIMJAEHYUN-OFFI_2026-08-06_14_15_28_net10.0.trx - Command:
dotnet test tests/KArtSell.Integration.Tests/KArtSell.Integration.Tests.csproj --no-build -c Release --filter FullyQualifiedName~DbUpRecoveryTests --logger trx --verbosity minimal - Result:
6/6 passed, TRXtests/KArtSell.Integration.Tests/TestResults/kjh20_KIMJAEHYUN-OFFI_2026-08-06_14_16_32_net10.0.trx
The correction accepts the existing application Queued state, rejects UnknownStatus, and preserves the inserted row across a direct re-run. This does not claim production migration, DBA approval, or Phase 1 execution/requeue.