mcpField
L
laravel:migrations-and-factories

laravel:migrations-and-factories

github.com/jpcaparas开发157157 次安装17 周前更新
代码仓库

关于 laravel:migrations-and-factories

面向 Laravel 开发者的迁移与工厂实践指南,帮助管理可测试、可回滚的数据库结构变更。内容包括迁移维护规则、工厂与种子数据,以及数据库测试建议。

主要功能

  1. 01为模型配套迁移和工厂
  2. 02使用迁移管理结构变更
  3. 03以状态修饰符组织工厂
  4. 04通过关系构建数据图
  5. 05使用事务或 RefreshDatabase 测试

适用场景

  1. 01创建模型及其迁移和工厂
  2. 02为功能测试生成数据
  3. 03安全回滚数据库迁移

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jpcaparas/superpowers-laravel --skill laravel:migrations-and-factories

安装后在 Claude Code 中输入/laravel:migrations-and-factories确认已加载。

详细介绍

迁移和工厂

确保架构变更安全、可测试且可回滚。

命令

# 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

规则

  • 每个新模型都应配套迁移和工厂
  • 如果迁移已合并到 main,切勿编辑它;应新增迁移
  • 在功能分支上,可以修改在该分支创建且尚未合并的迁移
  • 在 seeder 类中填充真实但精简的数据集;大型数据集应存放在外部
  • Laravel 13+:使用 Schema::hasForeignKey('posts', 'posts_user_id_foreign') 保护条件式架构变更;使用 $table->vector('embedding', dimensions: 1536) 创建 pgvector 列(参见 laravel:vector-search)

工厂

  • 优先使用状态修饰器(例如 ->state([...])),而非布尔标志
  • 在工厂中使用关系(例如 belongsTo)来构建真实的数据图
  • 保持工厂运行快速;尽可能将耗时的设置移至 seeds

测试

  • 在测试中使用工厂;避免手动插入数据
  • 执行数据库操作的集成测试应使用事务或 RefreshDatabase

评论

支持 Markdown