Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 07a6c869

Přidáno uživatelem David Friesecký před téměř 4 roky(ů)

Re #8696 - Improved DB creation
- secured start application without lost data

Zobrazit rozdíly:

src/config/connection_provider.py
1
import os
1 2
import sqlite3
2 3
from sqlite3 import Connection
3 4

  
4 5
from injector import Module, provider, singleton
5 6

  
6 7
from src.config.configuration import Configuration
7
from src.db.init_queries import DEFAULT_VALUES_SQL
8
from src.db.setup_database import SCHEMA_SQL
8
from src.constants import DB_DIR
9
from src.db.init_queries import DEFAULT_VALUES_SQL, CHECK_SCHEMA_SQL
10
from src.db.setup_database import setup_database
9 11
from src.utils.logger import Logger
10 12

  
11 13

  
......
26 28
        Logger.debug(f"Creating a database connection [{configuration.connection_string}].")
27 29

  
28 30
        try:
31
            if not os.path.exists(DB_DIR):
32
                os.makedirs(DB_DIR)
33

  
29 34
            co = sqlite3.connect(database=configuration.connection_string, check_same_thread=False)
30 35
            cu = co.cursor()
31
            cu.executescript(SCHEMA_SQL)  # TODO change setup_database not to drop tables if they exist
36
            cu.executescript(CHECK_SCHEMA_SQL)
32 37
            cu.executescript(DEFAULT_VALUES_SQL)
33 38
        except sqlite3.Error as e:
34 39
            Logger.error(f"Unknown error during database setting.")

Také k dispozici: Unified diff