Database creation fix
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2025-09-05 12:16:19 +09:00
parent d17f0f5507
commit fd6007ce93

10
db.py
View File

@@ -9,10 +9,20 @@ DATABASE_URL = os.getenv("DATABASE_URL", "sqlite+aiosqlite:///bot.db")
if DATABASE_URL.startswith("sqlite+aiosqlite:///"): if DATABASE_URL.startswith("sqlite+aiosqlite:///"):
db_path = DATABASE_URL.replace("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) abs_db_path = os.path.abspath(db_path)
db_dir = os.path.dirname(abs_db_path) db_dir = os.path.dirname(abs_db_path)
if db_dir and not os.path.exists(db_dir): if db_dir and not os.path.exists(db_dir):
os.makedirs(db_dir, exist_ok=True) 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) engine = create_async_engine(DATABASE_URL, future=True, echo=False)
AsyncSessionLocal = async_sessionmaker(engine, expire_on_commit=False) AsyncSessionLocal = async_sessionmaker(engine, expire_on_commit=False)