diff options
author | Madeline <46743919+MaddyUnderStars@users.noreply.github.com> | 2023-01-13 22:38:55 +1100 |
---|---|---|
committer | Madeline <46743919+MaddyUnderStars@users.noreply.github.com> | 2023-01-13 22:38:55 +1100 |
commit | a5bc0529edbadf357b021ad695a7583b508a3129 (patch) | |
tree | 4bfd7d91b77fbc6f76eb6f334f9a3e24de21efe7 | |
parent | Fix dumping incoming messages (diff) | |
download | server-a5bc0529edbadf357b021ad695a7583b508a3129.tar.xz |
Fix guild delete failing when template exists
4 files changed, 70 insertions, 1 deletions
diff --git a/src/util/entities/Template.ts b/src/util/entities/Template.ts index 1d952283..7975e731 100644 --- a/src/util/entities/Template.ts +++ b/src/util/entities/Template.ts @@ -36,7 +36,7 @@ export class Template extends BaseClass { source_guild_id: string; @JoinColumn({ name: "source_guild_id" }) - @ManyToOne(() => Guild) + @ManyToOne(() => Guild, { onDelete: "CASCADE" }) source_guild: Guild; @Column({ type: "simple-json" }) diff --git a/src/util/migration/mariadb/1673609465036-templateDeleteCascade.ts b/src/util/migration/mariadb/1673609465036-templateDeleteCascade.ts new file mode 100644 index 00000000..3053b82b --- /dev/null +++ b/src/util/migration/mariadb/1673609465036-templateDeleteCascade.ts @@ -0,0 +1,23 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class templateDeleteCascade1673609465036 implements MigrationInterface { + name = "templateDeleteCascade1673609465036"; + + public async up(queryRunner: QueryRunner): Promise<void> { + await queryRunner.query( + `ALTER TABLE \`templates\` DROP FOREIGN KEY \`FK_445d00eaaea0e60a017a5ed0c11\``, + ); + await queryRunner.query( + `ALTER TABLE \`templates\` ADD CONSTRAINT \`FK_445d00eaaea0e60a017a5ed0c11\` FOREIGN KEY (\`source_guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION`, + ); + } + + public async down(queryRunner: QueryRunner): Promise<void> { + await queryRunner.query( + `ALTER TABLE \`templates\` DROP FOREIGN KEY \`FK_445d00eaaea0e60a017a5ed0c11\``, + ); + await queryRunner.query( + `ALTER TABLE \`templates\` ADD CONSTRAINT \`FK_445d00eaaea0e60a017a5ed0c11\` FOREIGN KEY (\`source_guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`, + ); + } +} diff --git a/src/util/migration/mysql/1673609465036-templateDeleteCascade.ts b/src/util/migration/mysql/1673609465036-templateDeleteCascade.ts new file mode 100644 index 00000000..3053b82b --- /dev/null +++ b/src/util/migration/mysql/1673609465036-templateDeleteCascade.ts @@ -0,0 +1,23 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class templateDeleteCascade1673609465036 implements MigrationInterface { + name = "templateDeleteCascade1673609465036"; + + public async up(queryRunner: QueryRunner): Promise<void> { + await queryRunner.query( + `ALTER TABLE \`templates\` DROP FOREIGN KEY \`FK_445d00eaaea0e60a017a5ed0c11\``, + ); + await queryRunner.query( + `ALTER TABLE \`templates\` ADD CONSTRAINT \`FK_445d00eaaea0e60a017a5ed0c11\` FOREIGN KEY (\`source_guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION`, + ); + } + + public async down(queryRunner: QueryRunner): Promise<void> { + await queryRunner.query( + `ALTER TABLE \`templates\` DROP FOREIGN KEY \`FK_445d00eaaea0e60a017a5ed0c11\``, + ); + await queryRunner.query( + `ALTER TABLE \`templates\` ADD CONSTRAINT \`FK_445d00eaaea0e60a017a5ed0c11\` FOREIGN KEY (\`source_guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`, + ); + } +} diff --git a/src/util/migration/postgresql/1673609867556-templateDeleteCascade.ts b/src/util/migration/postgresql/1673609867556-templateDeleteCascade.ts new file mode 100644 index 00000000..fdfbc05c --- /dev/null +++ b/src/util/migration/postgresql/1673609867556-templateDeleteCascade.ts @@ -0,0 +1,23 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class templateDeleteCascade1673609867556 implements MigrationInterface { + name = "templateDeleteCascade1673609867556"; + + public async up(queryRunner: QueryRunner): Promise<void> { + await queryRunner.query( + `ALTER TABLE "templates" DROP CONSTRAINT "FK_445d00eaaea0e60a017a5ed0c11"`, + ); + await queryRunner.query( + `ALTER TABLE "templates" ADD CONSTRAINT "FK_445d00eaaea0e60a017a5ed0c11" FOREIGN KEY ("source_guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, + ); + } + + public async down(queryRunner: QueryRunner): Promise<void> { + await queryRunner.query( + `ALTER TABLE "templates" DROP CONSTRAINT "FK_445d00eaaea0e60a017a5ed0c11"`, + ); + await queryRunner.query( + `ALTER TABLE "templates" ADD CONSTRAINT "FK_445d00eaaea0e60a017a5ed0c11" FOREIGN KEY ("source_guild_id") REFERENCES "guilds"("id") ON DELETE NO ACTION ON UPDATE NO ACTION`, + ); + } +} |