Laravel database expert
Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/agent-skills-standard/laravel-database-expert
Expert patterns for advanced queries, Redis caching, and database scalability. Use when optimizing Laravel queries, implementing Redis caching, or scaling databases. (triggers: config/database.php, database/migrations/*.php, join, aggregate, subquery, selectRaw, Cache)From its SKILL.md
npx -y skills add ComeOnOliver/skillshub --skill laravel-database-expertAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
2.3 KB, 505 tokens by cl100k_base, as published. Nobody here has run it
Laravel Database Expert
Priority: P1 (HIGH)
Structure
config/
└── database.php # Connection & Cluster config
app/
└── Http/
└── Controllers/ # Query logic entry points
Implementation Guidelines
Advanced Query Builder
- Complex Joins: Prefer
joinSub($subquery, 'alias', ...)andwhereExists(fn($q) => $q->select(DB::raw(1))...)over raw SQL orwhereInfor correlated subqueries. - Subqueries: Use
addSelectwith aDB::rawsubquery to avoid N+1 issues. - Aggregates: Use
withCount(),withSum(), andwithAvg()directly via Eloquent for optimized column-based aggregation. - Raw Expressions: Always use
selectRaworwhereRawwith bindings; never use string concatenation in raw queries.
Caching Strategy (Redis/Memcached)
- Cache-Aside: Utilize
Cache::remember('key', $ttl, $closure)for frequently accessed data (e.g.,posts.all). - Redis Tagging: Group related keys using
Cache::tags(['posts', 'user:1'])for grouped invalidation. - Invalidation: Call
Cache::tags(['posts'])->flush()to clear specific subsets; never useCache::flush()globally in production.
Scalability & Infrastructure
- Read/Write Splitting: Configure 'read' and 'write' keys in
config/database.phpmysql/pgsql connections. Laravel automatically routes SELECT to read and INSERT/UPDATE/DELETE to write; no code changes needed. - Indices: Ensure correct database indexes are present on all join and aggregate columns.
Anti-Patterns
- No string SQL concatenation: Use bindings or Query Builder.
- No queries in loops: Use subqueries, joins, or aggregates.
- No
Cache::flush(): Use tags to target specific cache groups. - No direct Redis calls: Use Laravel Cache wrappers consistently.
References
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.