# Laravel Migrations And Factories

> Safe database change patterns; when to modify vs add migrations; always pair models with migrations and factories; seeding guidance

- Skill: `noartem/laravel-migrations-and-factories` (Agent Skill)
- Install (CLI): `npx skillmds add noartem/laravel-migrations-and-factories`
- Raw SKILL.md: https://api.skillmd.com/api/skills/noartem/laravel-migrations-and-factories/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: noartem (https://skillmd.com/u/noartem)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/noartem/laravel-migrations-and-factories

---


# 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`

