From 37e2532a2b4ecac806cc213b36bacd7c905be5cb Mon Sep 17 00:00:00 2001 From: ilija42 <57732589+ilija42@users.noreply.github.com> Date: Thu, 28 Mar 2024 20:24:45 +0100 Subject: [PATCH] Add cascade delete to kv store table fk (#12629) * Add cascade delete to kv store table fk * Add changeset (cherry picked from commit 3ec8cc914b6f8b3c889592ddb54a5801b5c0d5c6) --- .changeset/brave-games-drop.md | 5 ++++ core/services/job/kv_orm_test.go | 2 ++ ...229_add_kv_store_job_fk_cascade_delete.sql | 23 +++++++++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 .changeset/brave-games-drop.md create mode 100644 core/store/migrate/migrations/0229_add_kv_store_job_fk_cascade_delete.sql diff --git a/.changeset/brave-games-drop.md b/.changeset/brave-games-drop.md new file mode 100644 index 00000000000..7ca47862cb7 --- /dev/null +++ b/.changeset/brave-games-drop.md @@ -0,0 +1,5 @@ +--- +"chainlink": major +--- + +Fix kv_store migration fk cascade deletion diff --git a/core/services/job/kv_orm_test.go b/core/services/job/kv_orm_test.go index 794e27b3c9f..25e503dc381 100644 --- a/core/services/job/kv_orm_test.go +++ b/core/services/job/kv_orm_test.go @@ -82,4 +82,6 @@ func TestJobKVStore(t *testing.T) { require.NoError(t, kvStore.Store(key, td2)) require.NoError(t, kvStore.Get(key, &retData)) require.Equal(t, td2, retData) + + require.NoError(t, jobORM.DeleteJob(jobID)) } diff --git a/core/store/migrate/migrations/0229_add_kv_store_job_fk_cascade_delete.sql b/core/store/migrate/migrations/0229_add_kv_store_job_fk_cascade_delete.sql new file mode 100644 index 00000000000..eb63539fae2 --- /dev/null +++ b/core/store/migrate/migrations/0229_add_kv_store_job_fk_cascade_delete.sql @@ -0,0 +1,23 @@ +-- +goose Up + +BEGIN; + +ALTER TABLE job_kv_store DROP CONSTRAINT job_kv_store_job_id_fkey; +ALTER TABLE job_kv_store + ADD CONSTRAINT job_kv_store_job_id_fkey + FOREIGN KEY (job_id) + REFERENCES jobs(id) + ON DELETE CASCADE; + +COMMIT; + +-- +goose Down +BEGIN; + +ALTER TABLE job_kv_store DROP CONSTRAINT job_kv_store_job_id_fkey; +ALTER TABLE job_kv_store + ADD CONSTRAINT job_kv_store_job_id_fkey + FOREIGN KEY (job_id) + REFERENCES jobs(id); + +COMMIT;