Изменения: исправлена проблема с зависанием и необходимостью принудительного завершения работы программы, некоторый функционал внесён в разработку с сообщением 'функционал недоступен', исправлена ошибка бургер-меню (теперь нажатие на определённую кнопку вызывает определённую функцию), функция feature_in_development вынесена в utils.py.

This commit is contained in:
Xatiko 2024-11-25 19:40:12 +03:00
parent e01f43dc35
commit 9b9b459d8f
26 changed files with 1054 additions and 113 deletions

View file

@ -9,16 +9,42 @@ engine = create_engine(DATABASE_URL, echo=True)
# Создание фабрики сессий
Session = sessionmaker(bind=engine)
session = Session()
def init_db():
"""Инициализация базы данных: создание файла и таблиц."""
if not os.path.exists("database/DogAcademy.db"):
print("База данных не найдена. Создаём новую...")
Base.metadata.create_all(bind=engine)
# Переменная для хранения текущей сессии
current_session = None
def init_db(refresh=False):
"""
Инициализация базы данных: создание файла и таблиц.
Если `refresh` равно True, удаляет и пересоздаёт таблицы.
"""
global current_session
if not os.path.exists("database/DogAcademy.db") or refresh:
if refresh:
print("Обновление базы данных: удаление старых таблиц...")
Base.metadata.drop_all(bind=engine) # Удаляем все таблицы
print("Создание базы данных и таблиц...")
Base.metadata.create_all(bind=engine) # Создаём таблицы заново
else:
print("База данных уже существует.")
print("База данных уже существует. Обновление не требуется.")
# Инициализация сессии при запуске
current_session = get_session()
def get_session():
"""Возвращает сессию для работы с базой данных."""
return Session()
return Session()
def close_sessions():
"""Закрытие всех сессий перед выходом из программы."""
global current_session
if current_session is not None:
print("Закрытие сессии...")
current_session.close() # Закрываем текущую сессию базы данных
current_session = None
else:
print("Нет активной сессии для закрытия.")