Implement basic event deduplication
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user