Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/openstatusHQ/openstatus. ๐ซ Status page with uptime monitoring & API monitoring as code ๐ซ openstatus.dev
bun drizzle-orm monitoring monitoring-as-code nextjs observability on-call open-source shadcn-ui status-page statuspage synthetic-monitoring tinybird turso uptime uptime-checker uptime-monitor
Something went wrong. Try again.
1.4 kB ยท 41 lines
TypeScript
at main
123456789101112131415161718192021222324252627282930313233343536373839404142import { relations } from "drizzle-orm";import { index, integer, sqliteTable, text } from "drizzle-orm/sqlite-core";
import { monitorStatus } from "../monitors/constants";import { monitor } from "../monitors/monitor";
export const monitorTransition = sqliteTable( "monitor_transition", { id: integer("id").primaryKey(), monitorId: integer("monitor_id") .notNull() .references(() => monitor.id, { onDelete: "cascade" }), region: text("region").notNull(), cronTimestamp: integer("cron_timestamp").notNull(), fromStatus: text("from_status", { enum: monitorStatus }).notNull(), toStatus: text("to_status", { enum: monitorStatus }).notNull(), quorumCount: integer("quorum_count").notNull(), regionCount: integer("region_count").notNull(), transitioned: integer("transitioned", { mode: "boolean" }).notNull(), outboxRows: integer("outbox_rows").default(0).notNull(), createdAt: integer("created_at").notNull(), }, (t) => [ index("monitor_transition_monitor_id_cron_timestamp_idx").on( t.monitorId, t.cronTimestamp, ), index("monitor_transition_created_at_idx").on(t.createdAt), ],);
export const monitorTransitionRelations = relations( monitorTransition, ({ one }) => ({ monitor: one(monitor, { fields: [monitorTransition.monitorId], references: [monitor.id], }), }),);