fix(anaylitics): unique values were missing causing a weird crash

This commit is contained in:
2026-05-11 14:00:54 -05:00
parent 0de2579942
commit 13718fe702
2 changed files with 38 additions and 19 deletions

View File

@@ -4,13 +4,16 @@ import {
pgTable,
text,
timestamp,
unique,
uuid,
} from "drizzle-orm/pg-core";
export const analyticsDaily = pgTable("analytics_daily", {
export const analyticsDaily = pgTable(
"analytics_daily",
{
id: uuid("id").defaultRandom().primaryKey(),
businessDate: date("business_date").notNull(),
businessDate: date("business_date", { mode: "string" }).notNull(),
method: text("method").notNull(),
routePattern: text("route_pattern").notNull(),
@@ -30,4 +33,13 @@ export const analyticsDaily = pgTable("analytics_daily", {
createdAt: timestamp("created_at").defaultNow().notNull(),
updatedAt: timestamp("updated_at").defaultNow().notNull(),
});
},
(table) => [
unique("analytics_daily_business_route_unique").on(
table.businessDate,
table.method,
table.routePattern,
table.module,
),
],
);

View File

@@ -61,7 +61,7 @@ export async function aggregateRouteHitsForBusinessDay() {
const rows = await db
.select({
businessDate: sql<string>`${businessDate}`,
businessDate: sql<string>`CAST(${businessDate} AS date)`,
method: analytics.method,
routePattern: analytics.routePattern,
module: sql<string>`COALESCE(${analytics.module}, 'unknown')`,
@@ -105,9 +105,16 @@ export async function aggregateRouteHitsForBusinessDay() {
};
}
const values = rows.map((row) => ({
...row,
businessDate: row.businessDate,
firstHitAt: new Date(row.firstHitAt),
lastHitAt: new Date(row.lastHitAt),
}));
await db
.insert(analyticsDaily)
.values(rows)
.values(values)
.onConflictDoUpdate({
target: [
analyticsDaily.businessDate,