SuperAPI AI 工具集

advanced-alchemy-litestar

编程与开发

查看项目

更新于 10-15 16:48

技能介绍

用途:在 Litestar 应用中集成 Advanced Alchemy,借助 SQLAlchemy 插件统一管理数据库配置、会话与依赖注入,并支持服务/仓储模式与 CLI 数据库命令。

主要能力:配置 SQLAlchemyAsyncConfig 或 SQLAlchemySyncConfig 并注册 SQLAlchemyPlugin;由插件提供 session 与 engine 依赖,替代手写请求级会话管理;围绕 service 构建控制器,必要时退回 repository-only 模式;支持 DTO 友好模型;启用 CLI 数据库命令及可选 session 后端。

使用方式:先配置插件,例如: from advanced_alchemy.extensions.litestar import (AsyncSessionConfig, SQLAlchemyAsyncConfig, SQLAlchemyPlugin) from litestar import Litestar alchemy_config = SQLAlchemyAsyncConfig(connection_string="sqlite+aiosqlite:///test.sqlite", before_send_handler="autocommit", session_config=AsyncSessionConfig(expire_on_commit=False), create_all=True) app = Litestar(plugins=[SQLAlchemyPlugin(config=alchemy_config)]) 应用组合放在 Litestar(...) 中,由 provider 或 DI 提供 service;仅在 service 注入不必要时,才在控制器或 handler 中注入 db_session。

实施规则:每个应用尽量只保留一份规范插件配置;修改默认值时显式保留 before_send_handler 与会话依赖键;DTO/schema 塑形靠近控制器边界,不放进 repository。

验证要点:确认 Litestar 注入了预期的 db_session 或重命名依赖;确认请求生命周期提交与回滚行为符合 before_send_handler;确认插件安装后 litestar database 命令可用;确认路由 handler、provider 与 DTO 在模型和 schema 类型上一致。

适用场景:Litestar 项目需要标准化数据库会话管理、服务层与仓储模式、DTO 边界及迁移命令时。

限制与关联:核心 CRUD 路径稳定后再启用 CLI 数据库命令与可选 session 后端;CRUD 路由结构、服务控制器、迁移命令及 Litestar 应用设置、依赖注入、DTO 等更深问题可参考对应技能。官方文档与示例见 https://advanced-alchemy.litestar.dev/latest/usage/frameworks/litestar.html 及 https://github.com/litestar-org/advanced-alchemy/blob/main/examples/litestar/litestar_service.py。