HomeBrowseUpload
← Back to registry
// Skill profile

SQLAlchemy Code Review

name: sqlalchemy-code-review

by anderskev · published 2026-04-01

开发工具数据处理
Total installs
0
Stars
★ 0
Last updated
2026-04
// Install command
$ claw add gh:anderskev/anderskev-sqlalchemy-code-review
View on GitHub
// Full documentation

---

name: sqlalchemy-code-review

description: Reviews SQLAlchemy code for session management, relationships, N+1 queries, and migration patterns. Use when reviewing SQLAlchemy 2.0 code, checking session lifecycle, relationship() usage, or Alembic migrations.

---

# SQLAlchemy Code Review

Quick Reference

| Issue Type | Reference |

|------------|-----------|

| Session lifecycle, context managers, async sessions | [references/sessions.md](references/sessions.md) |

| relationship(), lazy loading, N+1, joinedload | [references/relationships.md](references/relationships.md) |

| select() vs query(), ORM overhead, bulk ops | [references/queries.md](references/queries.md) |

| Alembic patterns, reversible migrations, data migrations | [references/migrations.md](references/migrations.md) |

Review Checklist

  • [ ] Sessions use context managers (`with`, `async with`)
  • [ ] No session sharing across requests or threads
  • [ ] Sessions closed/cleaned up properly
  • [ ] `relationship()` uses appropriate `lazy` strategy
  • [ ] Explicit `joinedload`/`selectinload` to avoid N+1
  • [ ] No lazy loading in loops (N+1 queries)
  • [ ] Using SQLAlchemy 2.0 `select()` syntax, not legacy `query()`
  • [ ] Bulk operations use bulk_insert/bulk_update, not ORM loops
  • [ ] Async sessions use proper async context managers
  • [ ] Migrations are reversible with `downgrade()`
  • [ ] Data migrations use `op.execute()` not ORM models
  • [ ] Migration dependencies properly ordered
  • When to Load References

  • Reviewing session creation/cleanup → sessions.md
  • Reviewing model relationships → relationships.md
  • Reviewing database queries → queries.md
  • Reviewing Alembic migration files → migrations.md
  • Review Questions

    1. Are all sessions properly managed with context managers?

    2. Are relationships configured to avoid N+1 queries?

    3. Are queries using SQLAlchemy 2.0 `select()` syntax?

    4. Are all migrations reversible and properly tested?

    // Comments
    Sign in with GitHub to leave a comment.
    // Related skills

    More tools from the same signal band