diff --git a/backend/app/database/db_mysql.py b/backend/app/database/db_mysql.py index 1448ed37..d0c2463f 100644 --- a/backend/app/database/db_mysql.py +++ b/backend/app/database/db_mysql.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- import sys +from uuid import uuid4 from fastapi import Depends from sqlalchemy import URL @@ -53,3 +54,8 @@ async def create_table(): """创建数据库表""" async with async_engine.begin() as coon: await coon.run_sync(MappedBase.metadata.create_all) + + +def uuid4_str() -> str: + """数据库引擎 UUID 类型兼容性解决方案""" + return str(uuid4()) diff --git a/backend/app/models/sys_user.py b/backend/app/models/sys_user.py index 602afae1..74405675 100644 --- a/backend/app/models/sys_user.py +++ b/backend/app/models/sys_user.py @@ -2,11 +2,11 @@ # -*- coding: utf-8 -*- from datetime import datetime from typing import Union -from uuid import uuid4 from sqlalchemy import String, ForeignKey from sqlalchemy.orm import Mapped, mapped_column, relationship +from backend.app.database.db_mysql import uuid4_str from backend.app.models.base import id_key, Base from backend.app.models.sys_user_role import sys_user_role from backend.app.utils.timezone import timezone @@ -18,7 +18,7 @@ class User(Base): __tablename__ = 'sys_user' id: Mapped[id_key] = mapped_column(init=False) - uuid: Mapped[str] = mapped_column(String(50), init=False, default_factory=uuid4, unique=True) + uuid: Mapped[str] = mapped_column(String(50), init=False, default_factory=uuid4_str, unique=True) username: Mapped[str] = mapped_column(String(20), unique=True, index=True, comment='用户名') nickname: Mapped[str] = mapped_column(String(20), unique=True, comment='昵称') password: Mapped[str] = mapped_column(String(255), comment='密码')