diff options
author | Madeline <46743919+MaddyUnderStars@users.noreply.github.com> | 2023-01-13 22:46:05 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-13 22:46:05 +1100 |
commit | 75f39bdcc71ea691b3f142f3eb6dbf0a3831cd5c (patch) | |
tree | 4bfd7d91b77fbc6f76eb6f334f9a3e24de21efe7 | |
parent | Fix dumping incoming messages (diff) | |
parent | Fix guild delete failing when template exists (diff) | |
download | server-75f39bdcc71ea691b3f142f3eb6dbf0a3831cd5c.tar.xz |
Merge pull request #928 from fosscord/fix/guildtemplates
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`, + ); + } +} |