-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinitialize_database.py
More file actions
32 lines (27 loc) · 1.91 KB
/
initialize_database.py
File metadata and controls
32 lines (27 loc) · 1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import global_variables
OPERATING_SYSTEM_TABLE: str = 'CREATE TABLE IF NOT EXISTS OperatingSystem (OS_Name varchar(255), Version varchar(' \
'255), Binaries_total int, Binaries_unsafe int, Single_CFI int, Multi_CFI int, ' \
'ShadowCallStack int, PRIMARY KEY (Version), UNIQUE (Version)); '
IMAGE_TABLE: str = 'CREATE TABLE IF NOT EXISTS Image (Version varchar(255), ImageName varchar(255), ImageType ' \
'varchar(255), Id varchar(255), PRIMARY KEY (Id), UNIQUE (Id), FOREIGN KEY (Version) REFERENCES ' \
'OperatingSystem(Version)); '
SPECIAL_FILE_TABLE: str = 'CREATE TABLE IF NOT EXISTS SpecialFile (Subimage varchar(255), SpecialFileName varchar(' \
'255), SpecialFileType varchar(255), SpecialFilePath varchar(255), Id varchar(255), ' \
'PRIMARY KEY (Id), UNIQUE (Id), FOREIGN KEY (Subimage) REFERENCES Image(Id)); '
BINARY_FILE_TABLE: str = 'CREATE TABLE IF NOT EXISTS BinaryFile (BinaryName varchar(255), Subimage varchar(255), ' \
'SpecialFileTag varchar(255), BinaryPath varchar(255), FileTimestamp varchar(255), ' \
'Checksum varchar(255), Error text, Unsafe_language bool, Modified bool, Single_CFI bool, Multi_CFI bool, ' \
'ShadowCallStack bool, Id varchar(255), PRIMARY KEY (Id), UNIQUE (Id), FOREIGN KEY (' \
'Subimage) REFERENCES Image(Id));'
def creating_tables():
cursor = global_variables.connection.cursor()
cursor.execute(OPERATING_SYSTEM_TABLE)
cursor.execute(IMAGE_TABLE)
cursor.execute(SPECIAL_FILE_TABLE)
cursor.execute(BINARY_FILE_TABLE)
global_variables.connection.commit()
def initialize_database():
try:
creating_tables()
except Exception as err:
print(f'DATABASE ERROR: Could not initialize database (tables) because of {err}')