del is a method that deletes multiple records at once by ID array. It executes safely within a transaction and requires admin permissions by default.
del is not defined in BaseModelClass. It’s a standard pattern automatically generated by the
Syncer in each Model class when you create an Entity.Type Signature
Auto-Generated Code
Sonamu automatically generates the following code based on your Entity:- getPuri(“w”): Gets write Puri from BaseModelClass method
- transaction(): Starts transaction
- table().whereIn().delete(): Executes delete using Knex methods
- Returns ids.length: Returns count of IDs requested for deletion
Parameters
ids
Array of IDs for records to delete. Type:number[]
Return Value
Type:Promise<number>
Returns the length of the passed ID array (ids.length). This is not the number of rows actually deleted from the database.
Basic Usage
Delete Single Record
Delete Multiple Records
Conditional Delete
Transactions
del automatically executes within a transaction.
With @transactional
Permission Check
By default,del requires admin permissions.
Delete Own Data
Practical Examples
- Account Deletion
- Delete Post
- Bulk Delete
- Soft Delete
API Usage
Auto-Generated del API
Client Code
React (TanStack Query)
Foreign Key Constraints
CASCADE Setting
RESTRICT Setting
Manual Handling
Deletion Verification
Check Existence
Verify After Delete
Performance Optimization
Batch Delete
Split large deletions into batches.Index Utilization
Add indexes on foreign keys that are frequently deleted.Cautions
1. Pass as Array
del must receive an array.
2. Return Value is ids.length
3. CASCADE Caution
CASCADE settings can delete unintended data.4. Transactions Recommended
Use transactions when deleting from multiple related tables.5. Permission Check
Be careful when changing defaultguards: ["admin"] setting.
Soft Delete vs Hard Delete
Hard Delete (del)
- Saves disk space
- Simple structure
- Cannot recover
- History lost
Soft Delete (save)
- Recoverable
- Preserves history
- Audit trail
- Increases disk usage
- Query complexity increases
Next Steps
save
Save and update records
findMany
Query records to delete
@transactional
Safe deletion with transactions
Foreign Keys
Configure foreign key constraints