Skip to content

Commit 1fc18ea

Browse files
authored
Merge pull request #769 from numerique-gouv/remove-non-verifed-duplicated
refactor: remove duplicated non verified email domains
2 parents 5619af4 + 49828a9 commit 1fc18ea

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
exports.shorthands = undefined;
2+
3+
exports.up = async (pgm) => {
4+
await pgm.db.query(`
5+
WITH cte AS (
6+
SELECT id,
7+
ROW_NUMBER()
8+
OVER (PARTITION BY organization_id, domain, verification_type ORDER BY updated_at DESC) AS rn
9+
FROM email_domains
10+
)
11+
DELETE
12+
FROM email_domains
13+
WHERE id IN (
14+
SELECT id
15+
FROM cte
16+
WHERE rn > 1
17+
);
18+
`);
19+
await pgm.db.query(`
20+
ALTER TABLE email_domains
21+
DROP CONSTRAINT unique_organization_domain;
22+
`);
23+
await pgm.db.query(`
24+
ALTER TABLE email_domains
25+
ADD CONSTRAINT unique_organization_domain
26+
UNIQUE NULLS NOT DISTINCT (organization_id, domain, verification_type);
27+
`);
28+
};
29+
30+
exports.down = async (pgm) => {
31+
await pgm.db.query(`
32+
ALTER TABLE email_domains
33+
DROP CONSTRAINT unique_organization_domain;
34+
`);
35+
await pgm.db.query(`
36+
ALTER TABLE email_domains
37+
ADD CONSTRAINT unique_organization_domain
38+
UNIQUE (organization_id, domain, verification_type);
39+
`);
40+
};

0 commit comments

Comments
 (0)