From 5b3e33c26bc2eb30ab2a032960a5d57eb06f148a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matt=20=E2=80=98TK=E2=80=99=20Taylor?= Date: Tue, 7 Apr 2026 11:52:55 +0100 Subject: [PATCH] fix: adds optimize indexes (33) to migration runner (#330) * fix: adds optimize indexes (33) to migration runner * chore: add changeset for migration 033 runner registration fix * test: update migration count assertions for 033_optimize_content_indexes --- .changeset/fix-migration-033-runner-registration.md | 5 +++++ packages/core/src/database/migrations/runner.ts | 2 ++ packages/core/tests/database/migrations.test.ts | 4 ++-- .../core/tests/integration/database/dialect-compat.test.ts | 4 ++-- packages/core/tests/integration/database/migrations.test.ts | 6 +++--- 5 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 .changeset/fix-migration-033-runner-registration.md diff --git a/.changeset/fix-migration-033-runner-registration.md b/.changeset/fix-migration-033-runner-registration.md new file mode 100644 index 0000000..a8be6cf --- /dev/null +++ b/.changeset/fix-migration-033-runner-registration.md @@ -0,0 +1,5 @@ +--- +"emdash": patch +--- + +Fixes migration 033 (optimize content indexes) not being registered in the static migration runner, so the composite and partial indexes it defines are now actually applied on startup. diff --git a/packages/core/src/database/migrations/runner.ts b/packages/core/src/database/migrations/runner.ts index 05b6ea6..8d75cfe 100644 --- a/packages/core/src/database/migrations/runner.ts +++ b/packages/core/src/database/migrations/runner.ts @@ -33,6 +33,7 @@ import * as m029 from "./029_redirects.js"; import * as m030 from "./030_widen_scheduled_index.js"; import * as m031 from "./031_bylines.js"; import * as m032 from "./032_rate_limits.js"; +import * as m033 from "./033_optimize_content_indexes.js"; /** * Migration provider that uses statically imported migrations. @@ -72,6 +73,7 @@ class StaticMigrationProvider implements MigrationProvider { "030_widen_scheduled_index": m030, "031_bylines": m031, "032_rate_limits": m032, + "033_optimize_content_indexes": m033, }; } } diff --git a/packages/core/tests/database/migrations.test.ts b/packages/core/tests/database/migrations.test.ts index 606e97c..d4ad31d 100644 --- a/packages/core/tests/database/migrations.test.ts +++ b/packages/core/tests/database/migrations.test.ts @@ -70,7 +70,7 @@ describe("Database Migrations", () => { await expect(runMigrations(db)).resolves.not.toThrow(); const status = await getMigrationStatus(db); - expect(status.applied).toHaveLength(31); // 001_initial through 032_rate_limits (no 010) + expect(status.applied).toHaveLength(32); // 001_initial through 033_optimize_content_indexes (no 010) }); it("should record migration in tracking table", async () => { @@ -78,7 +78,7 @@ describe("Database Migrations", () => { const records = await db.selectFrom("_emdash_migrations").selectAll().execute(); - expect(records).toHaveLength(31); + expect(records).toHaveLength(32); expect(records[0].name).toBe("001_initial"); expect(records[0].timestamp).toBeDefined(); expect(records[1].name).toBe("002_media_status"); diff --git a/packages/core/tests/integration/database/dialect-compat.test.ts b/packages/core/tests/integration/database/dialect-compat.test.ts index 8bbd050..496dba5 100644 --- a/packages/core/tests/integration/database/dialect-compat.test.ts +++ b/packages/core/tests/integration/database/dialect-compat.test.ts @@ -75,7 +75,7 @@ describeEachDialect("Migrations", (dialect) => { const migrations = await ctx.db.selectFrom("_emdash_migrations").selectAll().execute(); - expect(migrations).toHaveLength(31); + expect(migrations).toHaveLength(32); expect(migrations[0]?.name).toBe("001_initial"); }); @@ -85,7 +85,7 @@ describeEachDialect("Migrations", (dialect) => { const migrations = await ctx.db.selectFrom("_emdash_migrations").selectAll().execute(); - expect(migrations).toHaveLength(31); + expect(migrations).toHaveLength(32); }); it("reports correct migration status", async () => { diff --git a/packages/core/tests/integration/database/migrations.test.ts b/packages/core/tests/integration/database/migrations.test.ts index 3fe469e..e6fa164 100644 --- a/packages/core/tests/integration/database/migrations.test.ts +++ b/packages/core/tests/integration/database/migrations.test.ts @@ -57,7 +57,7 @@ describe("Database Migrations (Integration)", () => { const migrations = await db.selectFrom("_emdash_migrations").selectAll().execute(); - expect(migrations).toHaveLength(31); + expect(migrations).toHaveLength(32); expect(migrations[0]?.name).toBe("001_initial"); expect(migrations[0]?.timestamp).toBeDefined(); expect(migrations[1]?.name).toBe("002_media_status"); @@ -98,8 +98,8 @@ describe("Database Migrations (Integration)", () => { const migrations = await db.selectFrom("_emdash_migrations").selectAll().execute(); - // Should still only have thirty-one migration records - expect(migrations).toHaveLength(31); + // Should still only have thirty-two migration records + expect(migrations).toHaveLength(32); }); it("should report correct migration status", async () => {