mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-11-26 16:44:54 +00:00
ZOD-341-Add unique constraint to user email and clean up duplicates
This commit is contained in:
@ -0,0 +1,26 @@
|
||||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class AddUniqueConstraintToUserEmail1761032305682 implements MigrationInterface {
|
||||
name = 'AddUniqueConstraintToUserEmail1761032305682'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
// Clean up duplicate emails - keep the oldest record (MIN id)
|
||||
await queryRunner.query(`
|
||||
DELETE FROM users
|
||||
WHERE id IN (
|
||||
SELECT u1.id
|
||||
FROM users u1
|
||||
INNER JOIN users u2 ON u1.email = u2.email AND u1.id > u2.id
|
||||
WHERE u1.email IS NOT NULL
|
||||
)
|
||||
`);
|
||||
|
||||
// Add unique constraint
|
||||
await queryRunner.query(`ALTER TABLE "users" ADD CONSTRAINT "UQ_97672ac88f789774dd47f7c8be3" UNIQUE ("email")`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "users" DROP CONSTRAINT "UQ_97672ac88f789774dd47f7c8be3"`);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user