small pixel drawing of a pufferfish vore

update sqlite pragmas, add fk constraints & idxs
Jes Olson j3s@c3f.net
Fri, 11 Apr 2025 16:25:37 -0500
commit

4d8e219a9e0d503b05a46cdfc64ec5e4d139cb81

parent

ecf138d8b91bbd6495112a784588d038d0aa1773

2 files changed, 20 insertions(+), 1 deletions(-)

jump to
M site.gosite.go

@@ -40,7 +40,13 @@ }

// New returns a fully populated & ready for action Site func New() *Site { - db := sqlite.New("vore.db?_pragma=journal_mode(WAL)") + // pragmas: + // - journal_mode=WAL: enable write-ahead log for concurrency & perf + // - foreign_keys=ON: need foreign keyz + // - busy_timeout=5000: locky locky 5 secs + // - synchronous=NORMAL: "The synchronous=NORMAL setting is a good choice for most applications running in WAL mode." + // - cache_size=-64000: 64MB ram for db cache (yum yum more perf) + db := sqlite.New("vore.db?_pragma=journal_mode(WAL)&_pragma=foreign_keys(ON)&_pragma=busy_timeout(5000)&_pragma=synchronous(NORMAL)&_pragma=cache_size(-64000)") s := Site{ title: "vore", reaper: reaper.New(db),
A sqlite/migrations/3_add_foreign_keys.sql

@@ -0,0 +1,13 @@

+ALTER TABLE subscribe ADD CONSTRAINT fk_subscribe_user FOREIGN KEY (user_id) REFERENCES user (id); + +ALTER TABLE subscribe ADD CONSTRAINT fk_subscribe_feed FOREIGN KEY (feed_id) REFERENCES feed (id); + +ALTER TABLE saved_item ADD CONSTRAINT fk_saved_item_user FOREIGN KEY (user_id) REFERENCES user (id); + +CREATE INDEX IF NOT EXISTS idx_subscribe_user_feed ON subscribe (user_id, feed_id); + +CREATE INDEX IF NOT EXISTS idx_saved_item_user ON saved_item (user_id); + +CREATE INDEX IF NOT EXISTS idx_saved_item_url ON saved_item (item_url); + +CREATE INDEX IF NOT EXISTS idx_saved_item_created ON saved_item (created_at);