SQLAlchemy教程:第一个例子-3.创建表

介绍

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 已经创建


原文出处:/show_1GW3sDBdqCKh.html