adds initial db migration
This commit is contained in:
parent
7a980553ef
commit
2eaa61227e
11
DEVELOPING.md
Normal file
11
DEVELOPING.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
Setting Up A Dev Server
|
||||||
|
=======================
|
||||||
|
|
||||||
|
*Note: this documentation is heavily in flux during the initial development phase of the project.*
|
||||||
|
|
||||||
|
Starting with a fresh install of Debian 12 on a virtual machine or SBC:
|
||||||
|
|
||||||
|
1. apt install nginx
|
||||||
|
2. apt install php-fpm
|
||||||
|
3. apt install sqlite3 php-sqlite3
|
||||||
|
|
178
db/sqlite/20240506-initialize-db.sql
Normal file
178
db/sqlite/20240506-initialize-db.sql
Normal file
@ -0,0 +1,178 @@
|
|||||||
|
-- Items definition
|
||||||
|
|
||||||
|
CREATE TABLE Items (
|
||||||
|
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
description TEXT NOT NULL,
|
||||||
|
image_path TEXT,
|
||||||
|
model_path TEXT,
|
||||||
|
map_icon_path TEXT,
|
||||||
|
is_active INTEGER DEFAULT (1) NOT NULL,
|
||||||
|
is_unique_per_player INTEGER DEFAULT (0) NOT NULL,
|
||||||
|
is_unique_per_world INTEGER DEFAULT (0) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- NPCs definition
|
||||||
|
|
||||||
|
CREATE TABLE NPCs (
|
||||||
|
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
description TEXT NOT NULL,
|
||||||
|
is_active INTEGER DEFAULT (1) NOT NULL,
|
||||||
|
is_unique INTEGER DEFAULT (0) NOT NULL,
|
||||||
|
model_path TEXT,
|
||||||
|
image_path TEXT,
|
||||||
|
avatar_path TEXT
|
||||||
|
, minimum_group INTEGER DEFAULT (1) NOT NULL, maximum_group INTEGER DEFAULT (1) NOT NULL);
|
||||||
|
|
||||||
|
|
||||||
|
-- Players definition
|
||||||
|
|
||||||
|
CREATE TABLE Players (
|
||||||
|
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
nickname TEXT NOT NULL,
|
||||||
|
is_active INTEGER DEFAULT (1) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- POIs definition
|
||||||
|
|
||||||
|
CREATE TABLE POIs (
|
||||||
|
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
name TEXT NOT NULL,
|
||||||
|
latitude NUMERIC NOT NULL,
|
||||||
|
longitude NUMERIC NOT NULL,
|
||||||
|
radius NUMERIC DEFAULT (25) NOT NULL,
|
||||||
|
is_active INTEGER DEFAULT (0) NOT NULL
|
||||||
|
, description TEXT, map_marker_icon TEXT);
|
||||||
|
|
||||||
|
CREATE INDEX POIs_latitude_IDX ON POIs (latitude);
|
||||||
|
CREATE INDEX POIs_longitude_IDX ON POIs (longitude);
|
||||||
|
CREATE INDEX POIs_is_active_IDX ON POIs (is_active);
|
||||||
|
CREATE INDEX POIs_name_IDX ON POIs (name);
|
||||||
|
|
||||||
|
|
||||||
|
-- PlayerAuth definition
|
||||||
|
|
||||||
|
CREATE TABLE PlayerAuth (
|
||||||
|
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
player_id INTEGER NOT NULL,
|
||||||
|
email TEXT,
|
||||||
|
hashed_pw TEXT(255) NOT NULL,
|
||||||
|
is_active INTEGER DEFAULT (1) NOT NULL,
|
||||||
|
is_email_verified INTEGER DEFAULT (0) NOT NULL,
|
||||||
|
CONSTRAINT PlayerAuth_Players_FK FOREIGN KEY (player_id) REFERENCES Players(id)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- PlayerEncounters definition
|
||||||
|
|
||||||
|
CREATE TABLE PlayerEncounters (
|
||||||
|
player_id INTEGER NOT NULL,
|
||||||
|
npc_id INTEGER NOT NULL,
|
||||||
|
encounter_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
CONSTRAINT PlayerEncounters_Players_FK FOREIGN KEY (player_id) REFERENCES Players(id),
|
||||||
|
CONSTRAINT PlayerEncounters_NPCs_FK FOREIGN KEY (npc_id) REFERENCES NPCs(id)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- PlayerFriends definition
|
||||||
|
|
||||||
|
CREATE TABLE PlayerFriends (
|
||||||
|
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
player_id INTEGER NOT NULL,
|
||||||
|
friend_id INTEGER NOT NULL,
|
||||||
|
CONSTRAINT PlayerFriends_Players_FK FOREIGN KEY (player_id) REFERENCES Players(id),
|
||||||
|
CONSTRAINT PlayerFriends_Players_FK_1 FOREIGN KEY (friend_id) REFERENCES Players(id)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- PlayerItems definition
|
||||||
|
|
||||||
|
CREATE TABLE PlayerItems (
|
||||||
|
player_id INTEGER NOT NULL,
|
||||||
|
item_id INTEGER NOT NULL,
|
||||||
|
quantity INTEGER DEFAULT (1) NOT NULL,
|
||||||
|
is_active INTEGER DEFAULT (1) NOT NULL,
|
||||||
|
CONSTRAINT PlayerItems_Players_FK FOREIGN KEY (player_id) REFERENCES Players(id),
|
||||||
|
CONSTRAINT PlayerItems_Items_FK FOREIGN KEY (item_id) REFERENCES Items(id)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- PlayerNPCs definition
|
||||||
|
|
||||||
|
CREATE TABLE PlayerNPCs (
|
||||||
|
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
player_id INTEGER NOT NULL,
|
||||||
|
npc_id INTEGER NOT NULL,
|
||||||
|
group_size INTEGER DEFAULT (1) NOT NULL,
|
||||||
|
is_active INTEGER DEFAULT (1) NOT NULL,
|
||||||
|
CONSTRAINT PlayerNPCs_Players_FK FOREIGN KEY (player_id) REFERENCES Players(id),
|
||||||
|
CONSTRAINT PlayerNPCs_NPCs_FK FOREIGN KEY (npc_id) REFERENCES NPCs(id)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- PlayerPWChanges definition
|
||||||
|
|
||||||
|
CREATE TABLE PlayerPWChanges (
|
||||||
|
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
player_id INTEGER NOT NULL,
|
||||||
|
token TEXT NOT NULL,
|
||||||
|
is_used INTEGER DEFAULT (0) NOT NULL,
|
||||||
|
expires INTEGER NOT NULL,
|
||||||
|
CONSTRAINT PlayerPWChanges_Players_FK FOREIGN KEY (player_id) REFERENCES Players(id)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- PlayerSessions definition
|
||||||
|
|
||||||
|
CREATE TABLE PlayerSessions (
|
||||||
|
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
player_id INTEGER NOT NULL,
|
||||||
|
session_id TEXT NOT NULL,
|
||||||
|
CONSTRAINT PlayerSessions_Players_FK FOREIGN KEY (player_id) REFERENCES Players(id)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE INDEX PlayerSessions_session_id_IDX ON PlayerSessions (session_id);
|
||||||
|
|
||||||
|
|
||||||
|
-- "POI-Items" definition
|
||||||
|
|
||||||
|
CREATE TABLE "POI-Items" (
|
||||||
|
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
poi_id INTEGER NOT NULL,
|
||||||
|
item_id INTEGER NOT NULL,
|
||||||
|
is_active INTEGER DEFAULT (1) NOT NULL,
|
||||||
|
refresh_rate_in_seconds INTEGER DEFAULT (0) NOT NULL,
|
||||||
|
CONSTRAINT POI_Items_POIs_FK FOREIGN KEY (poi_id) REFERENCES POIs(id),
|
||||||
|
CONSTRAINT POI_Items_Items_FK FOREIGN KEY (item_id) REFERENCES Items(id)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- "POI-NPCs" definition
|
||||||
|
|
||||||
|
CREATE TABLE "POI-NPCs" (
|
||||||
|
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
poi_id INTEGER NOT NULL,
|
||||||
|
npc_id INTEGER NOT NULL,
|
||||||
|
group_size INTEGER DEFAULT (1) NOT NULL,
|
||||||
|
name INTEGER,
|
||||||
|
description INTEGER,
|
||||||
|
CONSTRAINT POI_NPCs_POIs_FK FOREIGN KEY (poi_id) REFERENCES POIs(id),
|
||||||
|
CONSTRAINT POI_NPCs_NPCs_FK FOREIGN KEY (npc_id) REFERENCES NPCs(id)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- "POI-NPC-Items" definition
|
||||||
|
|
||||||
|
CREATE TABLE "POI-NPC-Items" (
|
||||||
|
poi_npc_id INTEGER NOT NULL,
|
||||||
|
item_id INTEGER NOT NULL,
|
||||||
|
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
quantity INTEGER DEFAULT (1) NOT NULL,
|
||||||
|
refresh_rate_in_seconds INTEGER DEFAULT (0) NOT NULL,
|
||||||
|
CONSTRAINT POI_NPC_Items_POI_NPCs_FK FOREIGN KEY (poi_npc_id) REFERENCES "POI-NPCs"(id),
|
||||||
|
CONSTRAINT POI_NPC_Items_Items_FK FOREIGN KEY (item_id) REFERENCES Items(id)
|
||||||
|
);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user