add banbanmini backend
This commit is contained in:
24
talkingq-url/database/init_db.py
Normal file
24
talkingq-url/database/init_db.py
Normal file
@@ -0,0 +1,24 @@
|
||||
import asyncio
|
||||
from sqlalchemy.ext.asyncio import create_async_engine
|
||||
from database.models import Base
|
||||
from config import settings
|
||||
from utils.logger import session_logger
|
||||
import urllib.parse
|
||||
|
||||
async def init_db():
|
||||
"""初始化数据库,创建所有表"""
|
||||
try:
|
||||
encoded_password = urllib.parse.quote_plus(settings.db_password)
|
||||
connection_string = f"mysql+aiomysql://{settings.db_user}:{encoded_password}@{settings.db_host}:{settings.db_port}/{settings.db_name}"
|
||||
engine = create_async_engine(
|
||||
connection_string,
|
||||
echo=settings.db_echo
|
||||
)
|
||||
async with engine.begin() as conn:
|
||||
await conn.run_sync(Base.metadata.create_all)
|
||||
await engine.dispose()
|
||||
session_logger.info("system", "database", "数据库表已成功创建")
|
||||
return True
|
||||
except Exception as e:
|
||||
session_logger.error("system", "database", f"创建数据库表失败: {str(e)}")
|
||||
return False
|
||||
Reference in New Issue
Block a user