ValGuide Docs
EngineeringEngineering Reference

Cascade Deletion Map

Reference for all onDelete behaviors across schema foreign keys. Update this file whenever you change onDelete behavior in any schema.ts.

Delete an Organization

All org-owned data is removed:

TableColumnBehavior
memberorganizationIdcascade
invitationorganizationIdcascade
organizationSlugorganizationIdcascade
tourorganizationIdcascade
stoporganizationIdcascade
assetorganizationIdcascade
themeorganizationIdcascade

Deleting a tour/stop further cascades — see below.

Delete a Tour

TableColumnBehavior
tourLocaleDrafttourIdcascade
tourLocaletourIdcascade
tourSettingsDrafttourIdcascade
tourSettingstourIdcascade
tourStopDrafttourIdcascade
tourStoptourIdcascade
tourAssetDrafttourIdcascade
tourAssettourIdcascade
tourSlugtourIdcascade

Delete a Stop

TableColumnBehavior
stopLocaleDraftstopIdcascade
stopLocalestopIdcascade
stopSettingsDraftstopIdcascade
stopSettingsstopIdcascade
tourStopDraftstopIdcascade
tourStopstopIdcascade
stopAssetDraftstopIdcascade
stopAssetstopIdcascade

Delete an Auth User

User deletion preserves all org-owned content. Columns are set to null:

TableColumnBehavior
memberuserIdcascade (removes membership)
invitationinviterIdcascade (removes invitations they sent)
tourcreatedByset null
tourupdatedByset null
stopcreatedByset null
stopupdatedByset null
assetuploadedByset null
feedbackuserIdset null
tourLocaleDraftupdatedByset null
tourLocalepublishedByset null
stopLocaleDraftupdatedByset null
stopLocalepublishedByset null
tourSettingsDraftupdatedByset null
tourSettingspublishedByset null
stopSettingsDraftupdatedByset null
stopSettingspublishedByset null
tourSlug(none)no user FK
themecreatedByset null

Design Rationale

Tours, stops, assets, and feedback belong to the organization, not to individual users. Deleting a user must never destroy org content. The set null approach preserves data while indicating the original author/uploader is no longer in the system.

On this page