lavina/crates/lavina-core/migrations/0000_first.sql

35 lines
864 B
SQL

CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
name STRING UNIQUE NOT NULL
);
-- for development only, replace with properly hashed passwords later
CREATE TABLE challenges_plain_password
(
user_id INTEGER PRIMARY KEY NOT NULL,
password STRING NOT NULL
);
CREATE TABLE rooms
(
id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
name STRING UNIQUE NOT NULL,
topic STRING NOT NULL,
message_count INTEGER NOT NULL DEFAULT 0
);
CREATE TABLE messages (
room_id INTEGER NOT NULL,
id INTEGER NOT NULL, -- unique per room, sequential in one room
content STRING NOT NULL,
PRIMARY KEY (room_id, id)
);
CREATE TABLE memberships
(
user_id INTEGER NOT NULL,
room_id INTEGER NOT NULL,
status INTEGER NOT NULL, -- 0 for not-joined, 1 for joined, 2 for banned
PRIMARY KEY (user_id, room_id)
);