This commit is contained in:
10
db.py
10
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)
|
||||
|
||||
Reference in New Issue
Block a user