summary refs log tree commit diff
path: root/src/util
diff options
context:
space:
mode:
authorMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2023-01-13 22:38:55 +1100
committerMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2023-01-13 22:38:55 +1100
commit43a0260cd8cbf691866e44a05cd36287d32cf965 (patch)
tree58a92850cac114529a3d506537434f8ffa55862e /src/util
parentFix dumping incoming messages (diff)
downloadserver-43a0260cd8cbf691866e44a05cd36287d32cf965.tar.xz
Fix guild delete failing when template exists
Diffstat (limited to 'src/util')
-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`,
+		);
+	}
+}