Database & Recovery

QR identity migration, schema checks, durable journals, and safe recovery checks.

Resource
drs_vehicleshop
Version
v1.0.1-drs.8
Updated
Aug 30, 2026
Resource GitHub
Guide navigationDatabase & Recovery
Sections
01 / MIGRATION

Migration

Migrate an earlier QR installation

Back up the database, stop both shops, and let the runtime migrator rename qr_vehicle_shop_orders and qr_vehicle_shop_plate_reservations to their DRS identities. The database account needs CREATE, ALTER, INDEX, DROP, and INSERT for the first successful upgrade. Use the documented manual rename and qbox_drs_vehicle_columns.sql only after inspecting the current schema; drs_vehicleshop.sql is a fresh-install reference, not an upgrade script.

02 / DATABASE AND RECOVERY

Database and recovery

Automatic schema checks

Startup adds missing compatibility columns without rebuilding player_vehicles, creates or upgrades personal and society journals, aligns plate collation, verifies InnoDB and indexes, and reconciles interrupted orders before checkout opens.

Conflicting legacy and DRS tables

If both identities exist, the migrator disables purchases and asks for manual reconciliation. Compare row ownership and index definitions; never delete or merge financial records based only on table age.

Restart behavior

The shop restores interrupted owned deliveries to stored state and removes only the entity recorded by that order. DRS Garages rebuilds its active cache by matching trusted plate/model rows instead of blanket-storing every live vehicle.

03 / RECOVERY VALIDATION

Recovery validation

Verify purchase recovery

Interrupt a non-production test at delivery and restart boundaries. Confirm the journal reconciles the exact plate/model and returns incomplete delivery to stored state without duplicate charging, ownership, keys, or entities.

Monitor journal health

Treat committed results as authoritative, retain request ids across retries, and inspect any review-state row with the matching server, framework, bank, and garage history before staff changes it.

04 / DATABASE TROUBLESHOOTING

Database troubleshooting

Checkout remains disabled after startup

Read the first schema or journal readiness error in the server log. Check for both QR- and DRS-named tables, duplicate plates, incompatible indexes, missing schema privileges, or an unresolved migration before changing configuration.

An order is in a review state

Match the request, character, plate, and timestamp to the framework or society-bank transaction and the DRS Garages operation. Resolve the actual external outcome before marking, retrying, or refunding the journal row.