我在postgres中使用sqlalchemy
1.4.17,并进行了pytest-asyncio
测试,该测试调用了一个函数,该函数创建了一个包含uuid的记录。
async def create_user(session: AsyncSession, input_user_data):
new_user = model.User(**dict(input_user_data))
session.add(new_user)
await session.commit()
class User(Base):
__tablename__ = "user"
id = Column(GUID, primary_key=True,
server_default=DefaultClause(text("gen_random_uuid()")))
它运行正常,但会创建一个警告
sys:1: SAWarning: TypeDecorator GUID() will not produce a cache key because the ``cache_ok`` flag is not set to True. Set this flag to True if this type object's state is safe to use in a cache key, or False to disable this warning.
不知道怎么让它安静下来。任何帮助都是感激的!
2条答案
按热度按时间jei2mxaa1#
谢谢@snakecharmerb。它指出了我做错了什么。如果这对其他人有帮助的话,我从fastapi_utils导入GUID,而不是直接从sqlalchemy导入
使用SQL炼金术类型装饰器要容易得多,而不是修改fastapi实用程序库。
33qvvth12#
如果出于某种原因使用自定义
TypeDecorator
,例如:然后,需要将
cache_ok = True
添加为类成员当然,只有在列的TypeDecorator是可缓存的情况下才这样做。