From 65ac2b22501ef7e14f50b6bc5faa80373ed43a0a Mon Sep 17 00:00:00 2001 From: sjaanus Date: Mon, 8 Aug 2022 12:16:41 +0000 Subject: [PATCH] Add constraint for project --- src/migrations/.eslintrc | 2 +- ...20220808110415-add-projects-foreign-key.js | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 src/migrations/20220808110415-add-projects-foreign-key.js diff --git a/src/migrations/.eslintrc b/src/migrations/.eslintrc index 0719e9f181..7fa048064e 100644 --- a/src/migrations/.eslintrc +++ b/src/migrations/.eslintrc @@ -6,7 +6,7 @@ "rules": {}, "settings": {}, "parserOptions": { - "project": "../../tsconfig.json" + "project": "tsconfig.json" }, "overrides": [ { diff --git a/src/migrations/20220808110415-add-projects-foreign-key.js b/src/migrations/20220808110415-add-projects-foreign-key.js new file mode 100644 index 0000000000..e88fe3d40f --- /dev/null +++ b/src/migrations/20220808110415-add-projects-foreign-key.js @@ -0,0 +1,20 @@ +exports.up = function (db, cb) { + db.runSql( + ` + delete from group_role where project not in (select id from projects); + ALTER TABLE group_role + ADD CONSTRAINT fk_group_role_project + FOREIGN KEY(project) + REFERENCES projects(id) ON DELETE CASCADE; `, + cb, + ); +}; + +exports.down = function (db, cb) { + db.runSql( + ` + ALTER TABLE group_role DROP CONSTRAINT fk_group_role_project; +`, + cb, + ); +};