import { MigrationInterface, QueryRunner } from "typeorm"; export class AddUniqueConstraintToUserEmail1761032305682 implements MigrationInterface { name = 'AddUniqueConstraintToUserEmail1761032305682' public async up(queryRunner: QueryRunner): Promise { // 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 { await queryRunner.query(`ALTER TABLE "users" DROP CONSTRAINT "UQ_97672ac88f789774dd47f7c8be3"`); } }