From 198be68e524a7ba3942ad62ada7bda1c324ee1c9 Mon Sep 17 00:00:00 2001 From: CyberL1 Date: Thu, 20 Nov 2025 10:26:17 +0100 Subject: [PATCH] fix: default `activities` to empty array --- src/util/entities/Session.ts | 10 ++-------- ...630755675-default-activities-to-empty-array.ts | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 8 deletions(-) create mode 100644 src/util/migration/postgres/1763630755675-default-activities-to-empty-array.ts diff --git a/src/util/entities/Session.ts b/src/util/entities/Session.ts index 3d95f413..9cf08e12 100644 --- a/src/util/entities/Session.ts +++ b/src/util/entities/Session.ts @@ -42,7 +42,7 @@ export class Session extends BaseClass { @Column({ nullable: false, select: false }) session_id: string; - @Column({ type: "simple-json", nullable: true }) + @Column({ type: "simple-json", default: "[]" }) activities: Activity[]; @Column({ type: "simple-json", select: false }) @@ -59,10 +59,4 @@ export class Session extends BaseClass { status: Status; //TODO enum } -export const PrivateSessionProjection: (keyof Session)[] = [ - "user_id", - "session_id", - "activities", - "client_info", - "status", -]; +export const PrivateSessionProjection: (keyof Session)[] = ["user_id", "session_id", "activities", "client_info", "status"]; diff --git a/src/util/migration/postgres/1763630755675-default-activities-to-empty-array.ts b/src/util/migration/postgres/1763630755675-default-activities-to-empty-array.ts new file mode 100644 index 00000000..cc4b5337 --- /dev/null +++ b/src/util/migration/postgres/1763630755675-default-activities-to-empty-array.ts @@ -0,0 +1,15 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class DefaultActivitiesToEmptyArray1763630755675 implements MigrationInterface { + name = "DefaultActivitiesToEmptyArray1763630755675"; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "sessions" ALTER COLUMN "activities" SET NOT NULL`); + await queryRunner.query(`ALTER TABLE "sessions" ALTER COLUMN "activities" SET DEFAULT '[]'`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "sessions" ALTER COLUMN "activities" DROP DEFAULT`); + await queryRunner.query(`ALTER TABLE "sessions" ALTER COLUMN "activities" DROP NOT NULL`); + } +}