| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- BEGIN TRANSACTION;
-
- PRAGMA foreign_keys = ON;
-
- DROP TABLE IF EXISTS config;
- CREATE TABLE config (
- name TEXT UNIQUE, -- variable name
- value ANY -- variable value
- );
- CREATE UNIQUE INDEX IF NOT EXISTS idx_config_name ON config (name);
- INSERT INTO config (name, value) VALUES ('schema_version', '20230107');
-
- DROP TABLE IF EXISTS users;
- CREATE TABLE users (
- user_id INTEGER PRIMARY KEY, -- PK
- username TEXT UNIQUE COLLATE NOCASE, -- can be username or email
- password_hash TEXT, -- output of password_hash()
- timezone TEXT DEFAULT 'America/Los_Angeles' -- for date formatting
- );
- CREATE UNIQUE INDEX IF NOT EXISTS idx_users_username ON users (username COLLATE NOCASE);
-
- DROP TABLE IF EXISTS posts;
- CREATE TABLE posts (
- body TEXT, -- main text of the post
- created INTEGER, -- timestamp when the post was created
- updated INTEGER, -- timestamp when the post was last edited
- author_id INTEGER NOT NULL, -- user_id of author
- FOREIGN KEY (author_id) REFERENCES users (user_id)
- );
- CREATE INDEX IF NOT EXISTS idx_posts_created ON posts (created DESC);
-
- DROP TABLE IF EXISTS sessions;
- CREATE TABLE sessions (
- token TEXT UNIQUE NOT NULL, -- random hex string
- user_id INTEGER NOT NULL, -- owner of the token
- created INTEGER, -- timestamp when the session was created
- updated INTEGER, -- timestamp when the session was last used
- FOREIGN KEY (user_id) REFERENCES users (user_id)
- );
- CREATE UNIQUE INDEX IF NOT EXISTS idx_sessions_token ON sessions (token);
- CREATE INDEX IF NOT EXISTS idx_sessions_user_id ON sessions (user_id);
-
- COMMIT;
|