Fix database engine UUID type compatibility (#241)

This commit is contained in:
Wu Clan
2023-11-22 18:54:29 +08:00
committed by GitHub
parent ba738e5989
commit 447667ccf6
2 changed files with 8 additions and 2 deletions
+6
View File
@@ -1,6 +1,7 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import sys import sys
from uuid import uuid4
from fastapi import Depends from fastapi import Depends
from sqlalchemy import URL from sqlalchemy import URL
@@ -53,3 +54,8 @@ async def create_table():
"""创建数据库表""" """创建数据库表"""
async with async_engine.begin() as coon: async with async_engine.begin() as coon:
await coon.run_sync(MappedBase.metadata.create_all) await coon.run_sync(MappedBase.metadata.create_all)
def uuid4_str() -> str:
"""数据库引擎 UUID 类型兼容性解决方案"""
return str(uuid4())
+2 -2
View File
@@ -2,11 +2,11 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from datetime import datetime from datetime import datetime
from typing import Union from typing import Union
from uuid import uuid4
from sqlalchemy import String, ForeignKey from sqlalchemy import String, ForeignKey
from sqlalchemy.orm import Mapped, mapped_column, relationship 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.base import id_key, Base
from backend.app.models.sys_user_role import sys_user_role from backend.app.models.sys_user_role import sys_user_role
from backend.app.utils.timezone import timezone from backend.app.utils.timezone import timezone
@@ -18,7 +18,7 @@ class User(Base):
__tablename__ = 'sys_user' __tablename__ = 'sys_user'
id: Mapped[id_key] = mapped_column(init=False) 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='用户名') username: Mapped[str] = mapped_column(String(20), unique=True, index=True, comment='用户名')
nickname: Mapped[str] = mapped_column(String(20), unique=True, comment='昵称') nickname: Mapped[str] = mapped_column(String(20), unique=True, comment='昵称')
password: Mapped[str] = mapped_column(String(255), comment='密码') password: Mapped[str] = mapped_column(String(255), comment='密码')