From 576cc763b0dc7414695a0b84b5fb63469eb2d206 Mon Sep 17 00:00:00 2001 From: Dominic Ferrando Date: Thu, 17 Apr 2025 18:13:06 -0400 Subject: [PATCH] setup db seed --- .gitignore | 1 + Makefile | 7 ++++++ internal/db/seed.sql | 52 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 .gitignore create mode 100644 internal/db/seed.sql diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a247e5e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +internal/db/comfychan.db diff --git a/Makefile b/Makefile index c849add..c932ec9 100644 --- a/Makefile +++ b/Makefile @@ -12,3 +12,10 @@ live/sync_assets: live: make -j2 live/templ live/sync_assets + +db/seed: + sqlite3 ./internal/db/comfychan.db < ./internal/db/seed.sql + +db/seed/f: + rm ./internal/db/comfychan.db && sqlite3 ./internal/db/comfychan.db < ./internal/db/seed.sql + diff --git a/internal/db/seed.sql b/internal/db/seed.sql new file mode 100644 index 0000000..6fc9db1 --- /dev/null +++ b/internal/db/seed.sql @@ -0,0 +1,52 @@ +PRAGMA foreign_keys = ON; + +-- ====================== +-- Tables +-- ====================== + +CREATE TABLE IF NOT EXISTS boards ( + id INTEGER PRIMARY KEY, + slug TEXT NOT NULL UNIQUE, + name TEXT NOT NULL, + tag TEXT +); + +CREATE TABLE IF NOT EXISTS threads ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + board_id INTEGER NOT NULL, + subject TEXT, + created_at DATETIME DEFAULT CURRENT_TIMESTAMP, + bumped_at DATETIME DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (board_id) REFERENCES boards(id) ON DELETE CASCADE +); + +CREATE TABLE IF NOT EXISTS posts ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + thread_id INTEGER NOT NULL, + author TEXT DEFAULT 'Anonymous', + body TEXT NOT NULL, + created_at DATETIME DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (thread_id) REFERENCES threads(id) ON DELETE CASCADE +); + +-- ====================== +-- Seed data +-- ====================== + +-- Boards + +INSERT INTO boards (slug, name, tag) VALUES + ('comfy', 'Comfy', 'Be comfy, fren'), + ('g', 'Technology', 'Beep boop'); + +-- Welcome threads + + -- /comfy/ + INSERT INTO threads (board_id, subject) VALUES ( + (SELECT id FROM boards WHERE slug='comfy'), + 'Welcome to /comfy/.' + ); + INSERT INTO posts (thread_id, body) VALUES ( + (SELECT id FROM threads WHERE subject LIKE 'Welcome to /comfy/.%'), + 'Post comfy. Be nice.' + );