From 4c7751db558e44e713f22ea4219c131608b2d3a8 Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Mon, 17 Feb 2025 14:50:02 +0100 Subject: [PATCH] #363 : (Re)saving teleports works again --- package-lock.json | 6 +++--- src/entities/base/mapEventTile.ts | 2 +- src/entities/base/mapEventTileTeleport.ts | 2 +- src/migrations/.snapshot-game.json | 2 +- ...igration20250216202007.ts => Migration20250217134639.ts} | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) rename src/migrations/{Migration20250216202007.ts => Migration20250217134639.ts} (99%) diff --git a/package-lock.json b/package-lock.json index 91edb6f..683c634 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4783,9 +4783,9 @@ } }, "node_modules/type-fest": { - "version": "4.34.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.34.1.tgz", - "integrity": "sha512-6kSc32kT0rbwxD6QL1CYe8IqdzN/J/ILMrNK+HMQCKH3insCDRY/3ITb0vcBss0a3t72fzh2YSzj8ko1HgwT3g==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.35.0.tgz", + "integrity": "sha512-2/AwEFQDFEy30iOLjrvHDIH7e4HEWH+f1Yl1bI5XMqzuoCUqwYCdxachgsgv0og/JdVZUhbfjcJAoHj5L1753A==", "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=16" diff --git a/src/entities/base/mapEventTile.ts b/src/entities/base/mapEventTile.ts index 9b85382..4f75ffe 100644 --- a/src/entities/base/mapEventTile.ts +++ b/src/entities/base/mapEventTile.ts @@ -22,7 +22,7 @@ export class BaseMapEventTile extends BaseEntity { @Property() positionY: number = 0 - @OneToOne({ eager: true }) + @OneToOne({ eager: true, deleteRule: 'cascade', orphanRemoval: true }) teleport?: MapEventTileTeleport setId(id: UUID) { diff --git a/src/entities/base/mapEventTileTeleport.ts b/src/entities/base/mapEventTileTeleport.ts index d330459..f156d6c 100644 --- a/src/entities/base/mapEventTileTeleport.ts +++ b/src/entities/base/mapEventTileTeleport.ts @@ -9,7 +9,7 @@ export class BaseMapEventTileTeleport extends BaseEntity { @PrimaryKey() id = randomUUID() - @OneToOne({ deleteRule: 'cascade' }) + @OneToOne({ deleteRule: 'cascade', orphanRemoval: true }) mapEventTile!: MapEventTile @ManyToOne({ deleteRule: 'cascade', eager: true }) diff --git a/src/migrations/.snapshot-game.json b/src/migrations/.snapshot-game.json index 1ab2576..672ae91 100644 --- a/src/migrations/.snapshot-game.json +++ b/src/migrations/.snapshot-game.json @@ -317,7 +317,7 @@ "id" ], "referencedTableName": "map_event_tile_teleport", - "deleteRule": "set null", + "deleteRule": "cascade", "updateRule": "cascade" } }, diff --git a/src/migrations/Migration20250216202007.ts b/src/migrations/Migration20250217134639.ts similarity index 99% rename from src/migrations/Migration20250216202007.ts rename to src/migrations/Migration20250217134639.ts index 3e3571b..38a652e 100644 --- a/src/migrations/Migration20250216202007.ts +++ b/src/migrations/Migration20250217134639.ts @@ -1,6 +1,6 @@ import { Migration } from '@mikro-orm/migrations'; -export class Migration20250216202007 extends Migration { +export class Migration20250217134639 extends Migration { override async up(): Promise { this.addSql(`create table \`map\` (\`id\` varchar(255) not null, \`name\` varchar(255) not null default '', \`width\` int not null default 10, \`height\` int not null default 10, \`tiles\` json not null, \`pvp\` tinyint(1) not null default false, \`created_at\` datetime not null, \`updated_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`); @@ -70,7 +70,7 @@ export class Migration20250216202007 extends Migration { this.addSql(`alter table \`map_effect\` add constraint \`map_effect_map_id_foreign\` foreign key (\`map_id\`) references \`map\` (\`id\`) on update cascade on delete cascade;`); this.addSql(`alter table \`map_event_tile\` add constraint \`map_event_tile_map_id_foreign\` foreign key (\`map_id\`) references \`map\` (\`id\`) on update cascade on delete cascade;`); - this.addSql(`alter table \`map_event_tile\` add constraint \`map_event_tile_teleport_id_foreign\` foreign key (\`teleport_id\`) references \`map_event_tile_teleport\` (\`id\`) on update cascade on delete set null;`); + this.addSql(`alter table \`map_event_tile\` add constraint \`map_event_tile_teleport_id_foreign\` foreign key (\`teleport_id\`) references \`map_event_tile_teleport\` (\`id\`) on update cascade on delete cascade;`); this.addSql(`alter table \`map_event_tile_teleport\` add constraint \`map_event_tile_teleport_map_event_tile_id_foreign\` foreign key (\`map_event_tile_id\`) references \`map_event_tile\` (\`id\`) on update cascade on delete cascade;`); this.addSql(`alter table \`map_event_tile_teleport\` add constraint \`map_event_tile_teleport_to_map_id_foreign\` foreign key (\`to_map_id\`) references \`map\` (\`id\`) on update cascade on delete cascade;`);