50 lines
2.2 KiB
Markdown
50 lines
2.2 KiB
Markdown
# Development database write smoke
|
|
|
|
This executable is deliberately separate from the read-only `DbSmoke` tool. It
|
|
does not load database configuration or make a database call unless the exact
|
|
write acknowledgement is present:
|
|
|
|
```powershell
|
|
dotnet run --project tools/MBN_STOCK_WEBVIEW.DbWriteSmoke/MBN_STOCK_WEBVIEW.DbWriteSmoke.csproj -- `
|
|
--i-understand-this-writes-development-database
|
|
```
|
|
|
|
Use `--configuration <path>` only when the normal LocalAppData configuration is
|
|
not the intended development configuration. Credentials, SQL, generated
|
|
identities, and database values are never printed.
|
|
|
|
The plan covers every migrated database writer:
|
|
|
|
- all four Oracle GraphE `INPUT_*` screens;
|
|
- Oracle AList/PList definition creation and item replacement;
|
|
- ThemeA KRX (Oracle) and NXT (MariaDB) creation;
|
|
- EList expert creation (Oracle).
|
|
|
|
Each scenario uses a legacy-column-safe 20-character
|
|
`MBW<UTC-date><40-bit nonce><scenario>` name,
|
|
proves that name is absent, performs each production-service mutation once,
|
|
reads the row back through the production read service, deletes it in `finally`,
|
|
and verifies absence. Numeric legacy keys cannot contain the prefix, so their
|
|
production next-code service supplies the numeric key and the conditional insert
|
|
still rejects a concurrent collision without overwriting an existing row. A
|
|
bound, read-only child-row preflight also rejects keys that have legacy orphaned
|
|
`PLAY_LIST`, `SB_ITEM`, or `RECOMMEND_LIST` rows, so cleanup cannot delete an
|
|
older row.
|
|
|
|
Both read and write retries are disabled. If a mutation outcome is unknown, the
|
|
tool stops immediately and issues no retry, cleanup mutation, or later scenario.
|
|
Its redacted output then reports that the uniquely prefixed row may require
|
|
manual inspection.
|
|
|
|
If a known-committed manual smoke row could not be parsed or deleted, reconcile
|
|
only the tool-owned current-UTC-date namespace with:
|
|
|
|
```powershell
|
|
dotnet run --project tools/MBN_STOCK_WEBVIEW.DbWriteSmoke/MBN_STOCK_WEBVIEW.DbWriteSmoke.csproj -- `
|
|
--reconcile-known-owned-manual-residue `
|
|
--i-understand-this-writes-development-database
|
|
```
|
|
|
|
The recovery refuses a truncated or non-singular per-table match and never
|
|
retries a delete.
|