Implement basic event deduplication

This commit is contained in:
Dominic Ferrando
2026-07-17 12:13:20 -04:00
parent 29c55a1bf1
commit 1ffc2fe79d
4 changed files with 43 additions and 11 deletions
@@ -17,6 +17,15 @@ export async function up(db: Kysely<any>): Promise<void> {
.addColumn("rate_limits", "integer", (cb) => cb.notNull().defaultTo(0))
.addColumn("has_failed", "boolean", (cb) => cb.notNull().defaultTo(false))
.addColumn("last_error", "jsonb")
.addColumn("dedupe_key", "text")
.execute()
await db.schema.createIndex("events_idx_dedupe_key")
.on("events")
.columns(["group", "type", "dedupe_key"])
.unique()
.where("dedupe_key", "is not", null)
.where(sql.ref("ended_at"), "is", null)
.execute()
// TABLE: STANDARDS_DATASETS
@@ -60,6 +69,8 @@ export async function down(db: Kysely<any>): Promise<void> {
// TABLE: EVENTS
await db.schema.dropTable("events").ifExists().execute()
await db.schema.dropIndex("events_idx_dedupe_key").ifExists().execute();
// TABLE: CALCULATORS
await db.schema.dropTable("calculators").ifExists().execute()