From 0979392925aa05e7b86307e17d6dc7e2940038fc Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Mon, 18 Nov 2024 08:06:30 -0500 Subject: [PATCH] make `activity_log.duration` nullable --- ...35047347-nullable-activity-log-duration.js | 20 +++++++++++++++++++ packages/backend/src/models/SkActivityLog.ts | 4 ++-- 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 packages/backend/migration/1731935047347-nullable-activity-log-duration.js diff --git a/packages/backend/migration/1731935047347-nullable-activity-log-duration.js b/packages/backend/migration/1731935047347-nullable-activity-log-duration.js new file mode 100644 index 0000000000..2acbd2bca5 --- /dev/null +++ b/packages/backend/migration/1731935047347-nullable-activity-log-duration.js @@ -0,0 +1,20 @@ +/* + * SPDX-FileCopyrightText: hazelnoot and other Sharkey contributors + * SPDX-License-Identifier: AGPL-3.0-only + */ + +export class NullableActivityLogDuration1731935047347 { + name = 'NullableActivityLogDuration1731935047347' + + async up(queryRunner) { + await queryRunner.query(`ALTER TABLE "activity_log" ALTER COLUMN "duration" DROP NOT NULL`); + await queryRunner.query(`ALTER TABLE "activity_log" ALTER COLUMN "duration" DROP DEFAULT`); + await queryRunner.query(`UPDATE "activity_log" SET "duration" = NULL WHERE "duration" = 0`); + } + + async down(queryRunner) { + await queryRunner.query(`UPDATE "activity_log" SET "duration" = 0 WHERE "duration" IS NULL`); + await queryRunner.query(`ALTER TABLE "activity_log" ALTER COLUMN "duration" SET DEFAULT '0'`); + await queryRunner.query(`ALTER TABLE "activity_log" ALTER COLUMN "duration" SET NOT NULL`); + } +} diff --git a/packages/backend/src/models/SkActivityLog.ts b/packages/backend/src/models/SkActivityLog.ts index f2d11487dd..6e462eccef 100644 --- a/packages/backend/src/models/SkActivityLog.ts +++ b/packages/backend/src/models/SkActivityLog.ts @@ -23,8 +23,8 @@ export class SkActivityLog { /** * Processing duration in milliseconds */ - @Column('double precision', { default: 0 }) - public duration = 0; + @Column('double precision', { nullable: true }) + public duration: number | null = null; @Column({ type: 'text',