diff --git a/db.py b/db.py index 9d438fa..ee9265b 100644 --- a/db.py +++ b/db.py @@ -9,10 +9,20 @@ DATABASE_URL = os.getenv("DATABASE_URL", "sqlite+aiosqlite:///bot.db") if DATABASE_URL.startswith("sqlite+aiosqlite:///"): db_path = DATABASE_URL.replace("sqlite+aiosqlite:///", "") + # Убираем лишний слэш в конце, если есть + if db_path.endswith(os.sep): + db_path = db_path.rstrip(os.sep) abs_db_path = os.path.abspath(db_path) db_dir = os.path.dirname(abs_db_path) if db_dir and not os.path.exists(db_dir): os.makedirs(db_dir, exist_ok=True) + # Если по этому пути уже есть папка, удаляем её и создаём файл + if os.path.isdir(abs_db_path): + import shutil + shutil.rmtree(abs_db_path) + # Если файла нет, создаём пустой файл + if not os.path.exists(abs_db_path): + open(abs_db_path, 'a').close() engine = create_async_engine(DATABASE_URL, future=True, echo=False) AsyncSessionLocal = async_sessionmaker(engine, expire_on_commit=False)