44 lines
1.5 KiB
TypeScript
44 lines
1.5 KiB
TypeScript
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<void> {
|
|
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<void> {
|
|
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",
|
|
})
|
|
);
|
|
}
|
|
}
|