From 3160cd18f076f4f9c15cac1c6fa78d9b3ed29421 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gast=C3=B3n=20Fournier?= Date: Tue, 23 Sep 2025 12:58:03 +0200 Subject: [PATCH] feat: enforce email null when deleted is set --- .../20250922151744-amend-deleted-at.js | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/migrations/20250922151744-amend-deleted-at.js diff --git a/src/migrations/20250922151744-amend-deleted-at.js b/src/migrations/20250922151744-amend-deleted-at.js new file mode 100644 index 0000000000..d9f28c94c8 --- /dev/null +++ b/src/migrations/20250922151744-amend-deleted-at.js @@ -0,0 +1,25 @@ + +exports.up = (db, callback) => { + db.runSql( + ` + UPDATE users + SET deleted_at = NULL + WHERE deleted_at IS NOT NULL and length(email) > 0; + + ALTER TABLE users + ADD CONSTRAINT deleted_at_requires_email_null + CHECK (deleted_at IS NULL OR email IS NULL); + `, + callback, + ); +}; + +exports.down = (db, callback) => { + db.runSql( + ` + ALTER TABLE users + DROP CONSTRAINT deleted_at_requires_email_null; + `, + callback, + ); +};