Database Administration (DBA Reference)
When a row is stuck in a locked state due to a pending approval, a database administrator can intervene directly using the queries below. Always prefer the soft-cancel approach in production — it preserves the audit trail.
1. Find all pending (locked) approval requests
2. Inspect the locked rows in a specific request
3a. Soft cancel — recommended for production
Sets the request to cancelled and marks all pending rows as rejected. The row is immediately unlocked on the next grid load. All history is preserved.
3b. Hard delete — removes all traces
ApprovalRows and ApprovalReviews cascade-delete automatically. Use only for test or demo data cleanup.
Impact on records
| Soft cancel | Hard delete | |
|---|---|---|
ApprovalRequests | Preserved — Status → cancelled | Deleted |
ApprovalRows + SnapshotData | Preserved — RowStatus → rejected | Cascade deleted |
ApprovalReviews (reviewer comments) | Preserved | Cascade deleted |
| Live entity data (EntityRows) | Unchanged | Unchanged |
Impact on auditing
The AuditLog table is only written when an approval is successfully approved. A pending request that is cancelled or deleted before approval has no AuditLog entry — the changes were never promoted to live data, so there is nothing to audit.
| Soft cancel | Hard delete | |
|---|---|---|
| AuditLog entries | None added or removed | None added or removed |
| Approval history visible | Yes — request shows as cancelled | No — all traces removed |
| Reviewer comments visible | Yes — preserved in ApprovalReviews | No — cascade deleted |