From 5ca18c252e15c960cf7d90bafb8f25a7897539fa Mon Sep 17 00:00:00 2001 From: Takumi Akimoto Date: Sat, 2 May 2026 18:04:52 +0900 Subject: [PATCH] Add unique constraint on posts --- database/migrations/003_unique_posts.ts | 19 +++++++++++++++++++ database/migrator.ts | 2 ++ 2 files changed, 21 insertions(+) create mode 100644 database/migrations/003_unique_posts.ts diff --git a/database/migrations/003_unique_posts.ts b/database/migrations/003_unique_posts.ts new file mode 100644 index 0000000..533a19c --- /dev/null +++ b/database/migrations/003_unique_posts.ts @@ -0,0 +1,19 @@ +import { Kysely } from "@kysely/kysely" + +const up = async (db: Kysely) => { + await db.schema + .createIndex("idx_at_proto_uri") + .on("posts") + .column("at_proto_uri") + .unique() + .execute() +} + +const down = async (db: Kysely) => { + await db.schema + .dropIndex("idx_at_proto_uri") + .on("posts") + .execute() +} + +export default { up, down } diff --git a/database/migrator.ts b/database/migrator.ts index 08ca815..174ee13 100644 --- a/database/migrator.ts +++ b/database/migrator.ts @@ -1,10 +1,12 @@ import { type Migration, type MigrationProvider } from "@kysely/kysely" import migration1 from "./migrations/001_initial.ts" import migration2 from "./migrations/002_refresh_token.ts" +import migration3 from "./migrations/003_unique_posts.ts" const migrations = { "001_initial": migration1, "002_refresh_token": migration2, + "003_unique_posts": migration3, } satisfies Record export const migrationProvider = { -- 2.51.2