mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-11-26 00:24:54 +00:00
27 lines
985 B
TypeScript
27 lines
985 B
TypeScript
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"`);
|
|
}
|
|
|
|
}
|