create tables
This commit is contained in:
@@ -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
|
||||
|
||||
# Создаём новую запись
|
||||
|
||||
Reference in New Issue
Block a user