decomp DBCServer_Release and inspect/document database

This commit is contained in:
Benjamin Palko 2026-10-14 23:22:03 -04:00
parent 4b267cbe05
commit 7834b98bf0
28222 changed files with 843300 additions and 144 deletions

34
decomp/schema/README.md Normal file
View file

@ -0,0 +1,34 @@
# decomp/schema — catalog dump of `schema/*.mdf`
Derived output, regenerable with `decomp/scripts/dump_schema.sh` (needs Docker).
**Method:**
1. Copy `schema/*.mdf/.ldf` to a scratch directory. The originals are never
opened in place.
2. Attach the copies to a throwaway `mcr.microsoft.com/mssql/server:2022-latest`
container. The files are database version 957 (SQL Server 2022); a 2019
instance refuses them.
3. Query `sys.*` catalogs and `OBJECT_DEFINITION`.
**No table data is exported, only row counts.** The databases contain account
and character data from the source deployment, so don't add data dumps here.
| File (per DB) | Content |
|---|---|
| `tables.tsv` | table, row count, column count |
| `columns.tsv` | schema.table, ordinal, column, type, max_length, precision, scale, nullable, identity, default |
| `indexes.tsv` | table, index, type, is_pk, is_unique, column, key ordinal |
| `foreign_keys.tsv` | none declared in any database |
| `routines.tsv` | procedure/function/view/trigger parameters |
| `procs/<name>.sql` | module definition text |
| `empty_procs.txt` | procedures with no executable statement (stubs) |
`proc_tables.tsv` (top level) is a heuristic text scan. For each procedure it
lists the tables it references (`W` = appears as an INSERT/UPDATE/DELETE/MERGE
target, `R` = otherwise) and its cross-database references. Tables built by
dynamic SQL (the per-day log tables in RustyHearts_Log) are not captured.
The procedure sources contain parameter names such as `@db_pass` (linked-server
setup). No literal credentials were found (grep for password patterns).
See `docs/DATABASE.md` for interpretation.