advanced-alchemy-database-seeding
SKILL.md
Database Seeding
Execution Workflow
- Store fixtures as JSON objects or arrays of objects in a dedicated fixtures directory.
- Use
open_fixture()for sync code oropen_fixture_async()for async code. - Create repository instances inside a real session and load fixture records in batches.
- Seed parent tables before child tables and make the process idempotent when possible.
- Wire seeding into startup hooks, dedicated commands, or one-off scripts based on environment needs.
Implementation Rules
- Keep fixture files versioned alongside the application code.
- Use
add_many()orupsert_many()instead of row-by-row inserts for non-trivial datasets. - Separate development, test, and production seed data explicitly.
- Do not hide seeding in normal request paths.
Example Pattern
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()
Validation Checklist
- Confirm fixture files include all required model fields.
- Confirm seeding can run twice without creating bad duplicates or broken foreign keys.
- Confirm batch operations commit only after the dataset passes validation.
- Confirm framework startup seeding is acceptable for the target environment and data size.
Cross-Skill Handoffs
- Use
advanced-alchemy-clifor dumping fixture data or pairing seeding with migration workflows. - Use
advanced-alchemy-litestar,advanced-alchemy-fastapi, oradvanced-alchemy-flaskfor framework-specific startup integration. - Use
advanced-alchemy-repositorieswhen custom seed logic depends on repository helpers.
Advanced Alchemy References
Weekly Installs
5
Repository
alti3/litestar-skillsGitHub Stars
5
First Seen
7 days ago
Security Audits
Installed on
cline5
gemini-cli5
github-copilot5
codex5
kimi-cli5
cursor5