diff --git a/sql/courses.sql b/sql/courses.sql new file mode 100644 index 0000000..526fa76 --- /dev/null +++ b/sql/courses.sql @@ -0,0 +1,114 @@ +INSERT INTO courses (name, game_id, cup_id) + VALUES + ('Luigi Raceway', (SELECT id FROM games WHERE name='Mario Kart 64'), (SELECT id FROM cups where name='Mushroom cup')), + ('Moo Moo Farm', (SELECT id FROM games WHERE name='Mario Kart 64'), (SELECT id FROM cups where name='Mushroom cup')), + ('Koopa Troopa Beach', (SELECT id FROM games WHERE name='Mario Kart 64'), (SELECT id FROM cups where name='Mushroom cup')), + ('Kalimari Desert', (SELECT id FROM games WHERE name='Mario Kart 64'), (SELECT id FROM cups where name='Mushroom cup')), + (E'Toad\'s Turnpike', (SELECT id FROM games WHERE name='Mario Kart 64'), (SELECT id FROM cups where name='Flower cup')), + ('Frappe Snowland', (SELECT id FROM games WHERE name='Mario Kart 64'), (SELECT id FROM cups where name='Flower cup')), + ('Choco Mountain', (SELECT id FROM games WHERE name='Mario Kart 64'), (SELECT id FROM cups where name='Flower cup')), + ('Mario Raceway', (SELECT id FROM games WHERE name='Mario Kart 64'), (SELECT id FROM cups where name='Flower cup')), + ('Wario Stadium', (SELECT id FROM games WHERE name='Mario Kart 64'), (SELECT id FROM cups where name='Star cup')), + ('Sherbet Land', (SELECT id FROM games WHERE name='Mario Kart 64'), (SELECT id FROM cups where name='Star cup')), + ('Royal Raceway', (SELECT id FROM games WHERE name='Mario Kart 64'), (SELECT id FROM cups where name='Star cup')), + (E'Bowser\'s Castle', (SELECT id FROM games WHERE name='Mario Kart 64'), (SELECT id FROM cups where name='Star cup')), + (E'D.K.\'s Jungle Parkway', (SELECT id FROM games WHERE name='Mario Kart 64'), (SELECT id FROM cups where name='Special cup')), + ('Yoshi Walley', (SELECT id FROM games WHERE name='Mario Kart 64'), (SELECT id FROM cups where name='Special cup')), + ('Banshee Boardwalk', (SELECT id FROM games WHERE name='Mario Kart 64'), (SELECT id FROM cups where name='Special cup')), + ('Rainbow Road', (SELECT id FROM games WHERE name='Mario Kart 64'), (SELECT id FROM cups where name='Special cup')), + ('Luigi Circuit', (SELECT id FROM games WHERE name='Mario Kart Double Dash'), (SELECT id FROM cups where name='Mushroom cup')), + ('Peach Beach', (SELECT id FROM games WHERE name='Mario Kart Double Dash'), (SELECT id FROM cups where name='Mushroom cup')), + ('Baby Park', (SELECT id FROM games WHERE name='Mario Kart Double Dash'), (SELECT id FROM cups where name='Mushroom cup')), + ('Dry Dry Desert', (SELECT id FROM games WHERE name='Mario Kart Double Dash'), (SELECT id FROM cups where name='Mushroom cup')), + ('Mushroom Bridge', (SELECT id FROM games WHERE name='Mario Kart Double Dash'), (SELECT id FROM cups where name='Flower cup')), + ('Mario Circuit', (SELECT id FROM games WHERE name='Mario Kart Double Dash'), (SELECT id FROM cups where name='Flower cup')), + ('Daisy Cruiser', (SELECT id FROM games WHERE name='Mario Kart Double Dash'), (SELECT id FROM cups where name='Flower cup')), + ('Waluigi Stadium', (SELECT id FROM games WHERE name='Mario Kart Double Dash'), (SELECT id FROM cups where name='Flower cup')), + ('Sherbet Land', (SELECT id FROM games WHERE name='Mario Kart Double Dash'), (SELECT id FROM cups where name='Star cup')), + ('Mushroom city', (SELECT id FROM games WHERE name='Mario Kart Double Dash'), (SELECT id FROM cups where name='Star cup')), + ('Yoshi Circuit', (SELECT id FROM games WHERE name='Mario Kart Double Dash'), (SELECT id FROM cups where name='Star cup')), + ('DK Mountain', (SELECT id FROM games WHERE name='Mario Kart Double Dash'), (SELECT id FROM cups where name='Star cup')), + ('Wario Colusseum', (SELECT id FROM games WHERE name='Mario Kart Double Dash'), (SELECT id FROM cups where name='Special cup')), + ('Dino Dino Jungle', (SELECT id FROM games WHERE name='Mario Kart Double Dash'), (SELECT id FROM cups where name='Special cup')), + (E'Bowser\'s castle', (SELECT id FROM games WHERE name='Mario Kart Double Dash'), (SELECT id FROM cups where name='Special cup')), + ('Rainbow Road', (SELECT id FROM games WHERE name='Mario Kart Double Dash'), (SELECT id FROM cups where name='Special cup')), + ('Luigi Circuit', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Mushroom cup')), + ('Moo Moo Meadows', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Mushroom cup')), + ('Mushroom Gorge', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Mushroom cup')), + (E'Toad\'s Factory', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Mushroom cup')), + ('Mario Circuit', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Flower cup')), + ('Coconut Mall', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Flower cup')), + ('DK Summit', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Flower cup')), + (E'Wario\'s Goldmine', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Flower cup')), + ('Daisy Circuit', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Star cup')), + ('Koopa Cape', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Star cup')), + ('Maple Treeway', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Star cup')), + ('Grumble Volcano', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Star cup')), + ('Dry Dry Ruins', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Special cup')), + ('Moonview Highway', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Special cup')), + (E'Bowser\'s Castle', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Special cup')), + ('Rainbow Road', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Special cup')), + ('Peach Beach', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Shell cup')), + ('Yoshi Falls', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Shell cup')), + ('Ghost Valley 2', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Shell cup')), + ('Mario Raceway', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Shell cup')), + ('Sherbert Land', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Banana cup')), + ('Shy Shy Beach', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Banana cup')), + ('Delfino Square', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Banana cup')), + ('Waluigi Stadium', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Banana cup')), + ('Desert Hills', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Leaf cup')), + ('Bowser Castle 3', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Leaf cup')), + (E'DK\'s Jungle Parkway', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Leaf cup')), + ('Mario Circuit', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Leaf cup')), + ('Mario Circuit 3', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Lightning cup')), + ('Peach Gardens', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Lightning cup')), + ('DK Mountain', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Lightning cup')), + (E'Bowser\'s Castle', (SELECT id FROM games WHERE name='Mario Kart Wii'), (SELECT id FROM cups where name='Lightning cup')), + ('Mario Kart Stadium', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Mushroom cup')), + ('Water Park', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Mushroom cup')), + ('Sweet Sweet Canyon', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Mushroom cup')), + ('Thwomps Ruins', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Mushroom cup')), + ('Mario Circuit', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Flower cup')), + ('Toad Harbor', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Flower cup')), + ('Twisted Mansion', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Flower cup')), + ('Shy Guy Falls', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Flower cup')), + ('Sunshine Airport', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Star cup')), + ('Dolphin Shoals', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Star cup')), + ('Electrodrome', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Star cup')), + ('Mount Wario', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Star cup')), + ('Cloudtop Cruise', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Special cup')), + ('Bone-Dry Dunes', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Special cup')), + (E'Bowser\'s Castle', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Special cup')), + ('Rainbow Road', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Special cup')), + ('Moo Moo Meadows', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Shell cup')), + ('GBA Mario Circuit', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Shell cup')), + ('Cheep Cheep Beach', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Shell cup')), + (E'Toad\'s Turnpike', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Shell cup')), + ('Dry Dry Desert', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Banana cup')), + ('Donut Plains 3', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Banana cup')), + ('Royal Raceway', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Banana cup')), + ('DK Jungle', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Banana cup')), + ('Wario Stadium', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Leaf cup')), + ('Sherbet Land', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Leaf cup')), + ('Music Park', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Leaf cup')), + ('Yoshi Valley', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Leaf cup')), + ('Tick Tock Clock', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Lightning cup')), + ('Piranha Plant Slide', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Lightning cup')), + ('Grumble Volcano', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Lightning cup')), + ('N64 Rainbow Road', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Lightning cup')), + ('Yoshi Circuit', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Egg cup')), + ('Excitebike Arena', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Egg cup')), + ('Dragon Driftway', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Egg cup')), + ('Mute City', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Egg cup')), + (E'Wario\'s Goldmine', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Triforce cup')), + ('SNES Rainbow Road', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Triforce cup')), + ('Ice Ice Outpost', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Triforce cup')), + ('Hyrule Circuit', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Triforce cup')), + ('Baby Park', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Crossing cup')), + ('Cheese Land', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Crossing cup')), + ('Wild Woods', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Crossing cup')), + ('Animal Crossing', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Crossing cup')), + ('Neo Bowser City', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Bell cup')), + ('Ribbon Road', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Bell cup')), + ('Super Bell Subway', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Bell cup')), + ('Big Blue', (SELECT id FROM games WHERE name='Mario Kart 8 Deluxe'), (SELECT id FROM cups where name='Bell cup')); diff --git a/sql/cups.sql b/sql/cups.sql new file mode 100644 index 0000000..9e74b4e --- /dev/null +++ b/sql/cups.sql @@ -0,0 +1,43 @@ +INSERT INTO cups (name) + VALUES + ('Mushroom cup'), + ('Flower cup'), + ('Star cup'), + ('Special cup'), + ('Shell cup'), + ('Banana cup'), + ('Leaf cup'), + ('Lightning cup'), + ('Egg cup'), + ('Triforce cup'), + ('Crossing cup'), + ('Bell cup'); + + /* ('Mushroom cup', (SELECT id from games where name='Mario Kart Wii' )), */ + /* ('Flower cup', (SELECT id from games where name='Mario Kart Wii' )), */ + /* ('Star cup', (SELECT id from games where name='Mario Kart Wii' )), */ + /* ('Special cup', (SELECT id from games where name='Mario Kart Wii' )), */ + /* ('Shell cup', (SELECT id from games where name='Mario Kart Wii' )), */ + /* ('Banana cup', (SELECT id from games where name='Mario Kart Wii' )), */ + /* ('Leaf cup', (SELECT id from games where name='Mario Kart Wii' )), */ + /* ('Lightning cup', (SELECT id from games where name='Mario Kart Wii' )), */ + /* ('Mushroom cup', (SELECT id from games where name='Mario Kart Double Dash' )), */ + /* ('Flower cup', (SELECT id from games where name='Mario Kart Double Dash' )), */ + /* ('Star cup', (SELECT id from games where name='Mario Kart Double Dash' )), */ + /* ('Special cup', (SELECT id from games where name='Mario Kart Double Dash' )), */ + /* ('Mushroom cup', (SELECT id from games where name='Mario Kart 64' )), */ + /* ('Flower cup', (SELECT id from games where name='Mario Kart 64' )), */ + /* ('Star cup', (SELECT id from games where name='Mario Kart 64' )), */ + /* ('Special cup', (SELECT id from games where name='Mario Kart 64' )), */ + /* ('Mushroom cup', (SELECT id from games where name='Mario Kart 8 Deluxe' )), */ + /* ('Flower cup', (SELECT id from games where name='Mario Kart 8 Deluxe' )), */ + /* ('Star cup', (SELECT id from games where name='Mario Kart 8 Deluxe' )), */ + /* ('Special cup', (SELECT id from games where name='Mario Kart 8 Deluxe' )), */ + /* ('Shell cup', (SELECT id from games where name='Mario Kart 8 Deluxe' )), */ + /* ('Banana cup', (SELECT id from games where name='Mario Kart 8 Deluxe' )), */ + /* ('Leaf cup', (SELECT id from games where name='Mario Kart 8 Deluxe' )), */ + /* ('Lightning cup', (SELECT id from games where name='Mario Kart 8 Deluxe' )), */ + /* ('Egg cup', (SELECT id from games where name='Mario Kart 8 Deluxe' )), */ + /* ('Triforce cup', (SELECT id from games where name='Mario Kart 8 Deluxe' )), */ + /* ('Crossing cup', (SELECT id from games where name='Mario Kart 8 Deluxe' )), */ + /* ('Bell cup', (SELECT id from games where name='Mario Kart 8 Deluxe' )); */ diff --git a/sql/games.sql b/sql/games.sql new file mode 100644 index 0000000..c3af5cd --- /dev/null +++ b/sql/games.sql @@ -0,0 +1,6 @@ +INSERT INTO games (name) + VALUES + ( 'Mario Kart Wii' ), + ( 'Mario Kart Double Dash' ), + ( 'Mario Kart 64' ), + ( 'Mario Kart 8 Deluxe' ); diff --git a/sql/initdb.sql b/sql/initdb.sql index 57e7a18..cb56ba2 100644 --- a/sql/initdb.sql +++ b/sql/initdb.sql @@ -1,31 +1,37 @@ CREATE TABLE IF NOT EXISTS users ( - id int primary key, - name varchar(80), - password varchar(80) + id serial primary key, + name varchar(80) not null, + password varchar(80) not null ); CREATE TABLE IF NOT EXISTS games ( - id int primary key, - name varchar(80) + id serial primary key, + name varchar(80) not null +); + +CREATE TABLE IF NOT EXISTS cups ( + id serial primary key, + name varchar(80) not null ); CREATE TABLE IF NOT EXISTS courses ( - id int primary key, - name varchar(80), - game_id int references games(id) + id serial primary key, + name varchar(80) not null, + game_id int references games(id), + cup_id int references cups(id) ); + CREATE TABLE IF NOT EXISTS standards ( - id int primary key, - name varchar(50), + id serial primary key, + name varchar(50) not null, tier varchar(3), points numeric, - game_id int references games(id), course_id int references courses(id) ); CREATE TABLE IF NOT EXISTS times ( - id int primary key, + id serial primary key, game_id int references games(id), course_id int references courses(id), timems varchar(80), diff --git a/sql/makedb.py b/sql/makedb.py new file mode 100644 index 0000000..1b8745d --- /dev/null +++ b/sql/makedb.py @@ -0,0 +1,30 @@ +from os import getenv, popen +from dotenv import load_dotenv + +load_dotenv() +POSTGRES_URL = getenv("POSTGRES_URL") +listofcommands = [ + "./resettables.sql", + "./initdb.sql", + "./games.sql", + "./cups.sql", + "./courses.sql", +] + + +def main(): + print("Running db initializiation scripts...") + for command in listofcommands: + print("Executing", command) + output = popen(f"psql {POSTGRES_URL} -f {command}") + output_string = output.read() + if output.close() is not None: + print("Error in script", command) + print(output_string) + return + + print("Scripts completed") + + +if __name__ == "__main__": + main() diff --git a/sql/resettables.sql b/sql/resettables.sql new file mode 100644 index 0000000..ef52e7e --- /dev/null +++ b/sql/resettables.sql @@ -0,0 +1,6 @@ +DROP TABLE IF EXISTS users CASCADE; +DROP TABLE IF EXISTS games CASCADE; +DROP TABLE IF EXISTS cups CASCADE; +DROP TABLE IF EXISTS courses CASCADE; +DROP TABLE IF EXISTS times CASCADE; +DROP TABLE IF EXISTS standards CASCADE;