Migration
Migrate an earlier QR installation
Back up the database and stop both shops. On the first start, the built-in upgrade can rename qr_vehicle_shop_orders and qr_vehicle_shop_plate_reservations to the DRS table names. The database account needs CREATE, ALTER, INDEX, DROP, and INSERT permission for this upgrade. Use the documented manual rename and qbox_drs_vehicle_columns.sql only after checking the current database structure. drs_vehicleshop.sql is for a new installation, not an upgrade.
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.
Test order recovery
Verify purchase recovery
Interrupt a purchase on a private test server during delivery and while restarting the resource. Confirm the order log matches the exact plate and model, then stores the vehicle without charging twice or creating duplicate ownership, keys, or vehicles.
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.
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.