diff --git a/src/jobs/examples.ts b/src/jobs/examples.ts index f49d199..7093abb 100644 --- a/src/jobs/examples.ts +++ b/src/jobs/examples.ts @@ -9,13 +9,15 @@ const supabase = new SupabaseManagement({ const db = supabase.db(process.env.NEXT_PUBLIC_SUPABASE_URL || ""); client.defineJob({ - id: "on-new-todos", - name: "On New Todos", + id: "bus-stop-sanity-check", + name: "Sanity Check Potential Job Arrivals", version: "0.1.1", trigger: db.onInserted({ table: 'potential_arrivals', }), run: async (payload, io, ctx) => { - console.log(payload); + await io.runTask("log-payload", async function() { + console.log(payload); + }); }, }); diff --git a/supabase/migrations/20240410200557_remove-hypertable-potential-arrivals.sql b/supabase/migrations/20240410200557_remove-hypertable-potential-arrivals.sql new file mode 100644 index 0000000..1fc084c --- /dev/null +++ b/supabase/migrations/20240410200557_remove-hypertable-potential-arrivals.sql @@ -0,0 +1,18 @@ +-- Trigger.dev doesn't play nice with timescaledb due to timescaledb's +-- magic internal tables. So we remove the hypertable for now. +delete from raw_bus_positions where id in (select raw_pos_id from potential_arrivals); + +drop table potential_arrivals cascade; + +CREATE TABLE potential_arrivals( + id BIGINT GENERATED ALWAYS AS IDENTITY, + raw_pos_id BIGINT NOT NULL, + bus_id text NOT NULL, + bus_coords GEOGRAPHY(Point, 4326) NOT NULL, + measured_at TIMESTAMP WITH TIME ZONE NOT NULL, + stop_id bigint NOT NULL, + distance decimal NOT NULL +); + +CREATE INDEX potential_arrives_raw_pos_id ON potential_arrivals (raw_pos_id); +CREATE INDEX potential_arrivals_spatial ON potential_arrivals USING GIST (bus_coords);