Agent skill
laravel-migrations-and-factories
Safe database change patterns; when to modify vs add migrations; always pair models with migrations and factories; seeding guidance
Install this agent skill to your Project
npx add-skill https://github.com/noartem/skills/tree/main/skills/laravel-migrations-and-factories
SKILL.md
Migrations and Factories
Keep schema changes safe, testable, and reversible.
Commands
php artisan make:model Post -mfc
# Run/rollback
php artisan migrate
php artisan migrate:rollback --step=1
# Fresh DB (dangerous; dev only)
php artisan migrate:fresh --seed
Rules
- Pair each new model with a migration and a factory
- If a migration was merged to
main, never edit it—add a new one - On feature branches, you may amend migrations created on that branch (if not merged)
- Seed realistic but minimal datasets in seeder classes; keep huge datasets external
Factories
- Prefer state modifiers (e.g.,
->state([...])) over boolean flags - Use relationships (e.g.,
belongsTo) in factories to build realistic graphs - Keep factories fast; move expensive setup to seeds where possible
Testing
- Use factories in tests; avoid manual inserts
- For integration tests touching DB, use transactions or
RefreshDatabase
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
laravel-transactions-and-consistency
Wrap multi-write operations in transactions; use dispatchAfterCommit and idempotency patterns to ensure consistency
laravel-filesystem-uploads
Store and serve files via Storage; set visibility, generate URLs, and handle streaming safely
laravel-task-scheduling
Schedule tasks with safety; use withoutOverlapping, onOneServer, and visibility settings for reliable cron execution
laravel-dependencies-trim-packages
Remove unneeded Composer packages and assets to improve boot time, memory, and security surface
laravel-controller-tests
Write focused controller tests using HTTP assertions; keep heavy logic in Actions/Services and unit test them
laravel-strategy-pattern
Use the Strategy pattern to select behavior at runtime; bind multiple implementations to a shared interface
Didn't find tool you were looking for?