create tables

This commit is contained in:
poturaevpetr
2025-12-25 22:14:58 +05:00
parent 577dc277e0
commit ebfb48a2b8
3 changed files with 70 additions and 4 deletions
+22 -3
View File
@@ -2,6 +2,7 @@ from autoLoader.config import FILESAPTH
from autoLoader.loader import ConnectorSFTP
import datetime, os
from autoLoader.database import Audio, get_db_session
from sqlalchemy import inspect
local_path = os.path.join(os.getcwd(), FILESAPTH)
@@ -15,7 +16,25 @@ class Loader():
return True
return False
def check_database(self):
"""Проверяет существование таблиц в БД"""
from autoLoader.database import engine
inspector = inspect(engine)
existing_tables = inspector.get_table_names()
if 'audio' not in existing_tables:
print("❌ Таблица 'audio' не существует в базе данных!")
print("💡 Запустите 'python init_db.py' для создания таблиц")
return False
return True
def load(self):
# Проверяем БД перед началом работы
if not self.check_database():
exit(1)
date_now = datetime.datetime.now()# - datetime.timedelta(days=1)
remote_path = f"/{date_now.strftime('%Y/%m/%d')}"
@@ -40,13 +59,13 @@ class Loader():
# Проверяем, существует ли файл локально
if os.path.exists(filepath):
print(f"Файл уже существует: {file}")
print(f"Файл уже существует локально: {file}")
continue
try:
# Скачиваем файл
sftp_client.get(remote_file, filepath)
print(f"Скачан файл: {remote_file}")
print(f"📥 Скачан файл: {remote_file}")
# Получаем размер файла
file_size = os.path.getsize(filepath)
@@ -56,7 +75,7 @@ class Loader():
# Проверяем, есть ли уже такой файл в БД
existing_audio = db.query(Audio).filter(Audio.filename == file).first()
if existing_audio:
print(f"Файл {file} уже есть в БД, пропускаем")
print(f"⏭️ Файл {file} уже есть в БД, пропускаем")
continue
# Создаём новую запись