import { MigrationInterface, QueryRunner, TableForeignKey } from "typeorm"; import { newsletter_table } from "./baseSchemaTables/newsletter"; export class UpdateNewsletterQueryRelation1752502069178 implements MigrationInterface { name = "UpdateNewsletterQueryRelation1752502069178"; public async up(queryRunner: QueryRunner): Promise { const table = await queryRunner.getTable("newsletter"); const foreignKey = table?.foreignKeys.find((fk) => fk.columnNames.includes("recipientsByQueryId")); if (foreignKey) { await queryRunner.dropForeignKey("newsletter", foreignKey); } await queryRunner.createForeignKey( newsletter_table, new TableForeignKey({ columnNames: ["recipientsByQueryId"], referencedColumnNames: ["id"], referencedTableName: "query", onDelete: "SET NULL", onUpdate: "RESTRICT", }) ); } public async down(queryRunner: QueryRunner): Promise { const table = await queryRunner.getTable("newsletter"); const foreignKey = table?.foreignKeys.find((fk) => fk.columnNames.includes("recipientsByQueryId")); if (foreignKey) { await queryRunner.dropForeignKey("newsletter", foreignKey); } await queryRunner.createForeignKey( newsletter_table, new TableForeignKey({ columnNames: ["recipientsByQueryId"], referencedColumnNames: ["id"], referencedTableName: "query", onDelete: "CASCADE", onUpdate: "RESTRICT", }) ); } }