From 278da994ce69698c6b67d8b71f75b5cb8190f6cd Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 14 Apr 2026 21:43:38 +0300 Subject: [PATCH] fix(server): wrong DB version (closes #9418) --- apps/server/src/migrations/migrations.spec.ts | 17 +++++++++++++++++ apps/server/src/migrations/migrations.ts | 2 ++ apps/server/src/services/app_info.ts | 4 ++-- 3 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 apps/server/src/migrations/migrations.spec.ts diff --git a/apps/server/src/migrations/migrations.spec.ts b/apps/server/src/migrations/migrations.spec.ts new file mode 100644 index 0000000000..98a6924ce3 --- /dev/null +++ b/apps/server/src/migrations/migrations.spec.ts @@ -0,0 +1,17 @@ +import { describe, expect, it } from "vitest"; + +import MIGRATIONS from "./migrations.js"; + +describe("migrations", () => { + it("should have unique version numbers", () => { + const versions = MIGRATIONS.map((m) => m.version); + const uniqueVersions = new Set(versions); + expect(versions.length).toBe(uniqueVersions.size); + }); + + it("should be sorted in descending order by version", () => { + for (let i = 1; i < MIGRATIONS.length; i++) { + expect(MIGRATIONS[i - 1].version, `migration at index ${i - 1} (v${MIGRATIONS[i - 1].version}) should be greater than migration at index ${i} (v${MIGRATIONS[i].version})`).toBeGreaterThan(MIGRATIONS[i].version); + } + }); +}); diff --git a/apps/server/src/migrations/migrations.ts b/apps/server/src/migrations/migrations.ts index f64e13d74f..5468312c55 100644 --- a/apps/server/src/migrations/migrations.ts +++ b/apps/server/src/migrations/migrations.ts @@ -344,6 +344,8 @@ const MIGRATIONS: (SqlMigration | JsMigration)[] = [ export default MIGRATIONS; +export const MAX_MIGRATION_VERSION = MIGRATIONS[0].version; + interface Migration { version: number; /** If true, errors during this migration are logged but do not halt the migration process. Useful for migrations that may have already been applied (e.g. adding a column that already exists). */ diff --git a/apps/server/src/services/app_info.ts b/apps/server/src/services/app_info.ts index bf9a7c6c1e..fcb4b24f53 100644 --- a/apps/server/src/services/app_info.ts +++ b/apps/server/src/services/app_info.ts @@ -2,16 +2,16 @@ import { AppInfo } from "@triliumnext/commons"; import path from "path"; import packageJson from "../../package.json" with { type: "json" }; +import { MAX_MIGRATION_VERSION } from "../migrations/migrations.js"; import build from "./build.js"; import dataDir from "./data_dir.js"; -const APP_DB_VERSION = 236; const SYNC_VERSION = 38; const CLIPPER_PROTOCOL_VERSION = "1.0"; export default { appVersion: packageJson.version, - dbVersion: APP_DB_VERSION, + dbVersion: MAX_MIGRATION_VERSION, nodeVersion: process.version, syncVersion: SYNC_VERSION, buildDate: build.buildDate,