Projekt

Obecné

Profil

Stáhnout (827 Bajtů) Statistiky
| Větev: | Tag: | Revize:
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()