We currently mostly avoid dealing with this via soft deletes, but now that users can upload their own data there is a renewed need to properly be able to delete data.
There are huge flow on effects for deleting some models. Like: locked database for 60 seconds as millions of records are affected. The interactions between various data models are hugely complicated too.
Not all models need detailed consideration, but conservatively, any models that we currently have soft deletes enabled on need to be considered.
Specs need to cover:
soft-delete scenarios
permanent deletion scenarios
who is allowed to do what
how all dependent relations should be handled
and which data we keep regardless of record deletion (and how we resolve FK constraints).
What happens when a record is deleted?
We currently mostly avoid dealing with this via soft deletes, but now that users can upload their own data there is a renewed need to properly be able to delete data.
There are huge flow on effects for deleting some models. Like: locked database for 60 seconds as millions of records are affected. The interactions between various data models are hugely complicated too.
Not all models need detailed consideration, but conservatively, any models that we currently have soft deletes enabled on need to be considered.
Specs need to cover:
soft-delete scenarios
permanent deletion scenarios
who is allowed to do what
how all dependent relations should be handled
and which data we keep regardless of record deletion (and how we resolve FK constraints).
[ ] Audio recording deletion
[ ] Site deletion
[ ] project/region deletion
[ ] User deletion
[ ] Analysis job deletion
[ ] Any other acts_as_paranoid models?