mirror of
https://github.com/ReCloudStudio/WebHooker.git
synced 2026-09-22 16:11:29 +00:00
Previously, saveGroups() used DELETE FROM d1_groups followed by re-insertion, which triggered ON DELETE CASCADE and wiped all routes whenever any group was updated. Changes: - Use INSERT...ON CONFLICT DO UPDATE (upsert) instead of delete-then-insert - Only delete groups that are actually being removed - Delete routes first, then delete groups (proper cascade order) - Load existing group IDs before saving to detect deletions This fixes the critical bug where updating one group's metadata would delete all routes across all groups. Data recovery: Used D1 Time Travel to restore from bookmark 000018f9-00000002-000050de-f23b7bfe5ccdc00e9c9dec3a4de8bc81 (before the problematic group update), recovering 18 routes. |
||
|---|---|---|
| .. | ||
| config | ||
| core | ||
| drivers | ||
| events | ||
| formatters | ||
| github | ||
| lib | ||
| observability | ||
| providers | ||
| queue | ||
| storage | ||
| web | ||
| cf.ts | ||
| config.ts | ||
| fragments.ts | ||
| http.ts | ||
| types.ts | ||
| webhook.ts | ||