feat: complete legacy UI and playout parity migration
This commit is contained in:
49
tools/MBN_STOCK_WEBVIEW.DbWriteSmoke/README.md
Normal file
49
tools/MBN_STOCK_WEBVIEW.DbWriteSmoke/README.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user