setup db seed
This commit is contained in:
@@ -0,0 +1 @@
|
||||
internal/db/comfychan.db
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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.'
|
||||
);
|
||||
Reference in New Issue
Block a user