Skip to content
Back to skills

Migrations And Factories

ASecurity

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

  • 147 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added June 6, 2026
databasesphptestingdatabase

Security analysis

A100/100

Scanned June 6, 2026

npx -y skills add jpcaparas/superpowers-laravel --skill migrations-and-factories --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Migrations And Factories?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Migrations And Factories
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jpcaparas-migrations-and-factories/badge)](https://www.skillsdirectory.com/skills/jpcaparas-migrations-and-factories)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: laravel:migrations-and-factories
description: Safe database change patterns; when to modify vs add migrations; always pair models with migrations and factories; seeding guidance
---

# Migrations and Factories

Keep schema changes safe, testable, and reversible.

## Commands

```
# Create model with migration + factory
sail artisan make:model Post -mfc   # or: php artisan make:model Post -mfc

# Run/rollback
sail artisan migrate                # or: php artisan migrate
sail artisan migrate:rollback --step=1   # or: php artisan migrate:rollback --step=1

# Fresh DB (dangerous; dev only)
sail artisan migrate:fresh --seed   # or: 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`

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.