介绍
ORM框架支持自动创建表,根据表模型类中的配置
实现
导包
import asyncio
定义初始化表的函数
async def init_table():
async with async_engine.begin() as conn:
# 删除旧表(测试用)
# await conn.run_sync(Base.metadata.drop_all)
# 创建表
await conn.run_sync(Base.metadata.create_all)
注意
Base.metadata.create_all() 是同步方法!异步引擎不能直接调用,需要包在 conn.run_sync() 里面
async with async_engine.begin() as conn:
await conn.run_sync(Base.metadata.create_all)
执行
async def main():
await init_table()
# ✅关键:主动dispose释放全部连接,避免GC阶段触发报错
await async_engine.dispose()
if __name__ == "__main__":
asyncio.run(main())
查看数据库
查看数据库,表 user 已经创建