From fa83c9ea7335d64e20eb01848d0cd3f9426f9fca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20M=C3=BCller?= <j.mueller@vr.rwth-aachen.de>
Date: Thu, 5 Mar 2020 13:24:07 +0100
Subject: [PATCH] Add initial arbor table design

---
 access_node/__main__.py | 39 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 38 insertions(+), 1 deletion(-)

diff --git a/access_node/__main__.py b/access_node/__main__.py
index 755db66..29b726c 100644
--- a/access_node/__main__.py
+++ b/access_node/__main__.py
@@ -47,9 +47,46 @@ def SetupNestTables(postgres_username, postgres_password, port):
       FOREIGN KEY (MULTIMETER_ID) REFERENCES MULTIMETERS (MULTIMETER_ID));''')
 
 	con.commit()
-	print("Tables created successfully!\n")
+	con.close()
+	print("Nest tables created successfully!\n")
 
+def SetupArborTables(postgres_username, postgres_password, port):
+	con = psycopg2.connect(database="postgres", user=postgres_username,
+                      password=postgres_password, host="database", port=str(port))
+	print("Database connection opened successfully!")
+	cur = con.cursor()
+	cur.execute("DROP TABLE IF EXISTS PROBES CASCADE")
+	cur.execute("DROP TABLE IF EXISTS CELLS CASCADE")
+	cur.execute("DROP TABLE IF EXISTS SIMULATION_NODES CASCADE")
+	cur.execute("DROP TABLE IF EXISTS ATTRIBUTES CASCADE")
+	cur.execute('''CREATE TABLE SIMULATION_NODES (
+      NODE_ID           INT       PRIMARY KEY NOT NULL UNIQUE,
+      ADDRESS           VARCHAR(25),
+      CURRENT_SIM_TIME  FLOAT);''')
+	cur.execute('''CREATE TABLE CELLS (
+      CELL_ID   			INT PRIMARY KEY NOT NULL UNIQUE
+			);''')
+	cur.execute('''CREATE TABLE CELL_PROPERTIES (
+      CELL_ID   			INT NOT NULL,
+			PROPERTY				VARCHAR(50),
+			PRIMARY KEY (CELL_ID, PROPERTY),
+			FOREIGN KEY (CELL_ID) REFERENCES CELLS (CELL_ID),
+			);''')
+	cur.execute('''CREATE TABLE PROBES (
+      PROBE_ID      INT PRIMARY KEY NOT NULL UNIQUE,
+      CELL_ID       INT,  
+      SEGMENT_ID 		INT,
+			POSITION   		FLOAT,
+			NODE_ID       INT,  
+      FOREIGN KEY (NODE_ID) REFERENCES SIMULATION_NODES (NODE_ID),
+			FOREIGN KEY (CELL_ID) REFERENCES CELLS (CELL_ID));''')
+	cur.execute('''CREATE TABLE ATTRIBUTES (
+      ATTRIBUTE_ID		INT PRIMARY KEY NOT NULL UNIQUE,
+      NAME   					INT NOT NULL,
+    	);''')
+	con.commit()
 	con.close()
+	print("Arbor tables created successfully!\n")
 
 
 def main():
-- 
GitLab