Core implementation written with Junie.
This commit is contained in:
18
database/schema.go
Normal file
18
database/schema.go
Normal file
@@ -0,0 +1,18 @@
|
||||
// Package database provides database-related functionality for the MCIAS system.
|
||||
package database
|
||||
|
||||
import (
|
||||
"embed"
|
||||
)
|
||||
|
||||
//go:embed schema.sql
|
||||
var schemaFS embed.FS
|
||||
|
||||
// DefaultSchema returns the default database schema as a string.
|
||||
func DefaultSchema() (string, error) {
|
||||
schemaBytes, err := schemaFS.ReadFile("schema.sql")
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return string(schemaBytes), nil
|
||||
}
|
||||
42
database/schema.sql
Normal file
42
database/schema.sql
Normal file
@@ -0,0 +1,42 @@
|
||||
CREATE TABLE users (
|
||||
id text primary key,
|
||||
created integer,
|
||||
user text not null,
|
||||
password blob not null,
|
||||
salt blob not null
|
||||
);
|
||||
|
||||
CREATE TABLE tokens (
|
||||
id text primary key,
|
||||
uid text not null,
|
||||
token text not null,
|
||||
expires integer default 0,
|
||||
FOREIGN KEY(uid) REFERENCES user(id)
|
||||
);
|
||||
|
||||
CREATE TABLE database (
|
||||
id text primary key,
|
||||
host text not null,
|
||||
port integer default 5432,
|
||||
name text not null,
|
||||
user text not null,
|
||||
password text not null
|
||||
);
|
||||
|
||||
CREATE TABLE registrations (
|
||||
id text primary key,
|
||||
code text not null
|
||||
);
|
||||
|
||||
CREATE TABLE roles (
|
||||
id text primary key,
|
||||
role text not null
|
||||
);
|
||||
|
||||
CREATE TABLE user_roles (
|
||||
id text primary key,
|
||||
uid text not null,
|
||||
rid text not null,
|
||||
FOREIGN KEY(uid) REFERENCES user(id),
|
||||
FOREIGN KEY(rid) REFERENCES roles(id)
|
||||
);
|
||||
Reference in New Issue
Block a user