用途:为使用 Advanced Alchemy 的项目填充数据库、加载 fixture 数据。
主要能力与用法:将 fixture 以 JSON 对象或对象数组形式存放在专门的 fixtures 目录;同步代码用 open_fixture(),异步代码用 open_fixture_async();在真实 session 中创建仓储实例,分批加载记录。示例:product_data = await open_fixture_async(fixtures_path, "product"),随后 await product_repo.add_many([Product(**item) for item in product_data]) 并 await db_session.commit()。
实施规则:fixture 文件与应用代码一起版本管理;非小数据集用 add_many() 或 upsert_many() 而非逐行插入;显式区分开发、测试、生产种子数据;不要把播种隐藏在正常请求路径中;先播种父表再播种子表,尽量保证幂等。
接入方式:可挂到启动钩子、专用命令或一次性脚本,视环境需求而定。
校验清单:确认 fixture 包含模型全部必填字段;确认重复运行不会产生错误重复或破坏外键;确认批量操作仅在数据集通过校验后提交;确认目标环境与数据规模适合在框架启动时播种。
相关技能:advanced-alchemy-cli 用于导出 fixture 数据或配合迁移流程;advanced-alchemy-litestar、advanced-alchemy-fastapi、advanced-alchemy-flask 用于框架启动集成;advanced-alchemy-repositories 用于依赖仓储辅助函数的自定义播种逻辑。
限制:资料未提供具体版本要求、性能数据或收费信息。