initial commit
This commit is contained in:
parent
9efc8a209b
commit
aabf45915a
48 changed files with 7400 additions and 0 deletions
144
database/sqlite/migration/00001_init.sql
Normal file
144
database/sqlite/migration/00001_init.sql
Normal file
|
@ -0,0 +1,144 @@
|
|||
-- +goose Up
|
||||
-- SQL in section 'Up' is executed when this migration is applied.
|
||||
CREATE TABLE users
|
||||
(
|
||||
ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
Username TEXT UNIQUE NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE userlogin_provider
|
||||
(
|
||||
ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_ID INTEGER NOT NULL,
|
||||
login_stub TEXT UNIQUE NOT NULL,
|
||||
FOREIGN KEY (user_ID) REFERENCES users (ID)
|
||||
);
|
||||
|
||||
CREATE TABLE user_sessions
|
||||
(
|
||||
ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_ID INTEGER NOT NULL,
|
||||
session_token TEXT UNIQUE NOT NULL,
|
||||
created_at TEXT NOT NULL,
|
||||
valid_until TEXT NOT NULL,
|
||||
name TEXT,
|
||||
FOREIGN KEY (user_ID) REFERENCES users (ID)
|
||||
);
|
||||
|
||||
CREATE TABLE storagespace
|
||||
(
|
||||
ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
Parent INTEGER,
|
||||
Location TEXT,
|
||||
FOREIGN KEY (Parent) REFERENCES storagespace (ID)
|
||||
);
|
||||
|
||||
CREATE TABLE objects
|
||||
(
|
||||
ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
storagespace_ID INTEGER NOT NULL,
|
||||
Name TEXT NOT NULL,
|
||||
Description TEXT,
|
||||
Serialnumber TEXT UNIQUE,
|
||||
created DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (storagespace_ID) REFERENCES storagespace (ID)
|
||||
);
|
||||
|
||||
CREATE TABLE events
|
||||
(
|
||||
ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_ID INTEGER NOT NULL,
|
||||
Name TEXT NOT NULL,
|
||||
Description TEXT,
|
||||
Location TEXT,
|
||||
Start_Date TEXT NOT NULL,
|
||||
End_Date TEXT NOT NULL,
|
||||
FOREIGN KEY (user_ID) REFERENCES users (ID)
|
||||
);
|
||||
|
||||
CREATE TABLE pictures
|
||||
(
|
||||
ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_ID INTEGER NOT NULL,
|
||||
storagespace_ID INTEGER,
|
||||
object_ID INTEGER,
|
||||
event_ID INTEGER,
|
||||
check_in_ID INTEGER,
|
||||
Path TEXT NOT NULL,
|
||||
Description TEXT,
|
||||
datetime TEXT NOT NULL,
|
||||
FOREIGN KEY (user_ID) REFERENCES users (ID),
|
||||
FOREIGN KEY (storagespace_ID) REFERENCES storagespace (ID),
|
||||
FOREIGN KEY (object_ID) REFERENCES objects (ID),
|
||||
FOREIGN KEY (event_ID) REFERENCES events (ID),
|
||||
FOREIGN KEY (check_in_ID) REFERENCES check_in (ID)
|
||||
);
|
||||
|
||||
CREATE TABLE events_objects
|
||||
(
|
||||
ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
event_ID INTEGER NOT NULL,
|
||||
object_ID INTEGER NOT NULL,
|
||||
FOREIGN KEY (event_ID) REFERENCES events (ID),
|
||||
FOREIGN KEY (object_ID) REFERENCES objects (ID)
|
||||
);
|
||||
|
||||
CREATE TABLE checkin_events
|
||||
(
|
||||
ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
Name TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE checkin_states
|
||||
(
|
||||
ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
Name TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE check_in
|
||||
(
|
||||
ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_ID INTEGER NOT NULL,
|
||||
checkin_event_ID INTEGER NOT NULL,
|
||||
event_ID INTEGER,
|
||||
object_ID INTEGER,
|
||||
checkin_state_ID INTEGER NOT NULL,
|
||||
datetime TEXT NOT NULL,
|
||||
FOREIGN KEY (user_ID) REFERENCES users (ID),
|
||||
FOREIGN KEY (checkin_event_ID) REFERENCES checkin_events (ID),
|
||||
FOREIGN KEY (event_ID) REFERENCES events (ID),
|
||||
FOREIGN KEY (object_ID) REFERENCES objects (ID),
|
||||
FOREIGN KEY (checkin_state_ID) REFERENCES checkin_states (ID)
|
||||
);
|
||||
|
||||
CREATE TABLE annotations
|
||||
(
|
||||
ID INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_ID INTEGER NOT NULL,
|
||||
object_ID INTEGER,
|
||||
event_ID INTEGER,
|
||||
check_in_ID INTEGER,
|
||||
events_object_ID INTEGER,
|
||||
text TEXT NOT NULL,
|
||||
datetime TEXT NOT NULL,
|
||||
FOREIGN KEY (user_ID) REFERENCES users (ID),
|
||||
FOREIGN KEY (object_ID) REFERENCES objects (ID),
|
||||
FOREIGN KEY (event_ID) REFERENCES events (ID),
|
||||
FOREIGN KEY (check_in_ID) REFERENCES check_in (ID),
|
||||
FOREIGN KEY (events_object_ID) REFERENCES events_objects (ID)
|
||||
);
|
||||
|
||||
-- +goose Down
|
||||
-- SQL in section 'Down' is executed when this migration is rolled back.
|
||||
DROP TABLE IF EXISTS annotations;
|
||||
DROP TABLE IF EXISTS check_in;
|
||||
DROP TABLE IF EXISTS checkin_states;
|
||||
DROP TABLE IF EXISTS checkin_events;
|
||||
DROP TABLE IF EXISTS events_objects;
|
||||
DROP TABLE IF EXISTS pictures;
|
||||
DROP TABLE IF EXISTS events;
|
||||
DROP TABLE IF EXISTS objects;
|
||||
DROP TABLE IF EXISTS storagespace;
|
||||
DROP TABLE IF EXISTS user_sessions;
|
||||
DROP TABLE IF EXISTS userlogin_provider;
|
||||
DROP TABLE IF EXISTS users;
|
Loading…
Add table
Add a link
Reference in a new issue