Files
eko/migrations/20241026174345_init.sql
2024-10-27 17:04:08 +02:00

46 lines
1005 B
SQL

-- +goose Up
CREATE TABLE messages (
id INTEGER PRIMARY KEY,
sender_id INT NOT NULL REFERENCES users (id),
content TEXT NOT NULL,
frequency_id INT REFERENCES frequencies (id),
receiver_id INT REFERENCES users (id),
CHECK (
(frequency_id IS NOT NULL AND receiver_id IS NULL) OR
(frequency_id IS NULL AND receiver_id IS NOT NULL)
)
);
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
public_key BLOB NOT NULL
);
CREATE TABLE networks (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
owner_id INT NOT NULL REFERENCES users (id)
);
CREATE TABLE frequencies (
id INTEGER PRIMARY KEY,
network_id INT NOT NULL REFERENCES networks (id),
name TEXT NOT NULL
);
CREATE TABLE users_networks (
user_id INT NOT NULL REFERENCES users (id),
network_id INT NOT NULL REFERENCES networks (id),
PRIMARY KEY (user_id, network_id)
);
-- +goose Down
DROP TABLE messages;
DROP TABLE users;
DROP TABLE networks;
DROP TABLE frequencies;
DROP TABLE users_networks;