From 9088abe3055c0c3450f91842a897d5aa1b23c0da Mon Sep 17 00:00:00 2001 From: Bas van den Aakster Date: Wed, 10 Dec 2025 18:32:43 +0100 Subject: [PATCH] Fix fresh schema to match D1 storage expectations Changed offers table to use service_id (nullable) instead of service_fqn. This matches the actual D1 storage implementation in d1.ts which expects: - service_id TEXT (optional link to service) - NOT service_fqn (that's only in the services table) Resolves 'NOT NULL constraint failed: offers.service_fqn' error. --- migrations/fresh_schema.sql | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/migrations/fresh_schema.sql b/migrations/fresh_schema.sql index 3f365de..b44e91a 100644 --- a/migrations/fresh_schema.sql +++ b/migrations/fresh_schema.sql @@ -11,10 +11,11 @@ DROP TABLE IF EXISTS usernames; CREATE TABLE offers ( id TEXT PRIMARY KEY, peer_id TEXT NOT NULL, - service_fqn TEXT NOT NULL, + service_id TEXT, sdp TEXT NOT NULL, created_at INTEGER NOT NULL, expires_at INTEGER NOT NULL, + last_seen INTEGER NOT NULL, secret TEXT, answerer_peer_id TEXT, answer_sdp TEXT, @@ -22,10 +23,10 @@ CREATE TABLE offers ( ); CREATE INDEX idx_offers_peer ON offers(peer_id); -CREATE INDEX idx_offers_service_fqn ON offers(service_fqn); +CREATE INDEX idx_offers_service ON offers(service_id); CREATE INDEX idx_offers_expires ON offers(expires_at); +CREATE INDEX idx_offers_last_seen ON offers(last_seen); CREATE INDEX idx_offers_answerer ON offers(answerer_peer_id); -CREATE INDEX idx_offers_available ON offers(answerer_peer_id) WHERE answerer_peer_id IS NULL; -- ICE candidates table CREATE TABLE ice_candidates (