1 |
07a6c869
|
David Friesecký
|
import os
|
2 |
fa03de5c
|
Captain_Trojan
|
import sqlite3
|
3 |
07a6c869
|
David Friesecký
|
from pathlib import Path
|
4 |
fa03de5c
|
Captain_Trojan
|
|
5 |
07a6c869
|
David Friesecký
|
from src.constants import DATABASE_FILE_LOCATION, DB_DIR
|
6 |
fa03de5c
|
Captain_Trojan
|
from src.db.init_queries import SCHEMA_SQL, DEFAULT_VALUES_SQL
|
7 |
5e31b492
|
David Friesecký
|
from src.utils.logger import Logger
|
8 |
fa03de5c
|
Captain_Trojan
|
|
9 |
|
|
|
10 |
|
|
def setup_database():
|
11 |
5e31b492
|
David Friesecký
|
Logger.debug(f"Database is setting.")
|
12 |
|
|
|
13 |
|
|
try:
|
14 |
07a6c869
|
David Friesecký
|
# TODO improve creating DB dir
|
15 |
|
|
if not os.path.exists(DB_DIR):
|
16 |
|
|
os.makedirs("../../" + DB_DIR)
|
17 |
|
|
|
18 |
|
|
# TODO improve creating DB file (now via FileAnchor)
|
19 |
5e31b492
|
David Friesecký
|
co = sqlite3.connect(DATABASE_FILE_LOCATION.shortest_relative_path())
|
20 |
|
|
cu = co.cursor()
|
21 |
|
|
cu.executescript(SCHEMA_SQL)
|
22 |
|
|
cu.executescript(DEFAULT_VALUES_SQL)
|
23 |
|
|
except sqlite3.Error as e:
|
24 |
|
|
Logger.error(f"Unknown error during database setting.")
|
25 |
|
|
raise e
|
26 |
|
|
|
27 |
|
|
return co
|
28 |
fa03de5c
|
Captain_Trojan
|
|
29 |
|
|
|
30 |
|
|
if __name__ == '__main__':
|
31 |
07a6c869
|
David Friesecký
|
setup_database()
|