mirror of
https://github.com/fastapi-practices/fastapi-best-architecture.git
synced 2026-09-21 21:15:13 +00:00
Fix database engine UUID type compatibility (#241)
This commit is contained in:
@@ -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,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='密码')
|
||||||
|
|||||||
Reference in New Issue
Block a user