summary refs log tree commit diff
diff options
context:
space:
mode:
authorMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2023-01-13 22:46:05 +1100
committerGitHub <noreply@github.com>2023-01-13 22:46:05 +1100
commit39f2c0dbe35a01f4f41a15adbd1468336d111fef (patch)
tree58a92850cac114529a3d506537434f8ffa55862e
parentFix dumping incoming messages (diff)
parentFix guild delete failing when template exists (diff)
downloadserver-39f2c0dbe35a01f4f41a15adbd1468336d111fef.tar.xz
Merge pull request #928 from fosscord/fix/guildtemplates
Fix guild delete failing when template exists
-rw-r--r--src/util/entities/Template.ts2
-rw-r--r--src/util/migration/mariadb/1673609465036-templateDeleteCascade.ts23
-rw-r--r--src/util/migration/mysql/1673609465036-templateDeleteCascade.ts23
-rw-r--r--src/util/migration/postgresql/1673609867556-templateDeleteCascade.ts23
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`,
+		);
+	}
+}