Projects with jobs cannot be deleted. A 500 error is returned as a result of a foreign key constraint violation job_project_id_fkey.
Expected Behavior
Project is deleted or marked inactive. Is it safe to just immediately cascade delete everything out of the database? Could there be issues with inflight / enqueued tasks?
Steps to reproduce
Run the application
Create a project
$ curl -X POST -H 'Content-Type: application/json' -d @sample/project.json localhost:8080/api/projects -i
HTTP/1.1 201 Created
content-type: application/json
content-length: 150
date: Sat, 19 Mar 2022 10:00:58 GMT
{"uuid":"4fb168e4-b963-431d-85b6-ac108542c036","name":"test_project","description":"This is a sample project to demonstrate Waterwheel","config":null}
Create a job in the project
$ curl -X POST -H 'Content-Type: application/json' -d @sample/jobs/simple.json localhost:8080/api/jobs -i
HTTP/1.1 201 Created
content-length: 0
date: Sat, 19 Mar 2022 10:02:37 GMT
$ curl -i localhost:8080/api/projects/4fb168e4-b963-431d-85b6-ac108542c036/jobs
HTTP/1.1 200 OK
content-type: application/json
content-length: 209
date: Sat, 19 Mar 2022 10:03:50 GMT
[{"job_id":"51c35e5d-e777-4797-b91b-2526bd4bafdc","name":"simple_job","description":"a simple job to test that waterwheel is working","paused":false,"success":78,"running":0,"failure":0,"waiting":0,"error":0}]
Delete the associated project
$ curl -i -X DELETE localhost:8080/api/projects/4fb168e4-b963-431d-85b6-ac108542c036
HTTP/1.1 500 Internal Server Error
content-length: 0
date: Sat, 19 Mar 2022 10:04:38 GMT
Logs
[2022-03-19T21:04:38.873+11:00 WARN waterwheel::server::api::project]
error deleting project: update or delete on table "project" violates foreign key constraint "job_project_id_fkey" on table "job"
[2022-03-19T21:04:38.873+11:00 ERROR highnoon::filter::log]
response
method: DELETE
uri: /api/projects/4fb168e4-b963-431d-85b6-ac108542c036
status: 500 Internal Server Error
Currently all deletions fail because of constraint violations. I don't think we want to cascade delete here, it seems valuable to mark deleted objects as inactive but retain them in the database for history.
Description
Projects with jobs cannot be deleted. A 500 error is returned as a result of a foreign key constraint violation
job_project_id_fkey
.Expected Behavior
Project is deleted or marked inactive. Is it safe to just immediately cascade delete everything out of the database? Could there be issues with inflight / enqueued tasks?
Steps to reproduce
Create a project
Create a job in the project
Logs