You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Lumen中创建二次迁移及解决迁移仅生成单表问题

关于Lumen迁移的两个问题解答

一、如何在Lumen中创建第二次迁移

创建第二次迁移和第一次的操作逻辑完全一致,用Lumen的Artisan命令生成即可:

  • 打开终端,进入你的Lumen项目根目录
  • 执行命令:php artisan make:migration create_[你的表名]_table
    比如要创建posts表,就运行:php artisan make:migration create_posts_table

这条命令会在database/migrations目录下生成新的迁移文件,文件名自动带上当前日期时间戳(格式为YYYY_MM_DD_HHMMSS_create_[表名]_table.php),Lumen会依据时间戳的先后顺序执行所有迁移。

二、执行php artisan migrate仅生成一个表的问题排查

从你给出的终端输出来看,系统只执行了2020_03_29_184109_create_users_table这个迁移,其他迁移文件未被执行,你可以按以下步骤排查:

  1. 检查迁移文件的命名规范
    Lumen对迁移文件名有严格要求,必须以YYYY_MM_DD_HHMMSS_开头,后续跟描述性名称(比如create_posts_table)。如果其他迁移文件的前缀日期时间格式错误(比如用了斜杠、数字缺失,或者时间戳比已执行的users迁移更早但实际是后创建的),Lumen会直接忽略它们。

  2. 确认迁移文件的存放位置
    所有迁移文件必须放在database/migrations目录下,Lumen默认仅扫描这个目录中的迁移文件。如果其他迁移文件放在了子目录或其他位置,执行migrate时需要通过--path参数指定路径,比如:php artisan migrate --path=database/migrations/custom

  3. 检查迁移文件的类名是否正确
    迁移文件中的类名必须和文件名对应,比如文件名是2020_03_29_184200_create_posts_table.php,类名就应该是CreatePostsTable(驼峰命名,去掉日期前缀和下划线)。如果类名不匹配,Lumen会找不到对应的迁移类,导致该迁移被跳过(可能会在终端输出错误,你可以仔细查看报错信息)。

  4. 查看migrations表的记录
    执行migrate时创建的migrations表会记录所有已执行的迁移。你可以连接数据库查看这个表,确认其他迁移是否已经被标记为执行过(如果之前执行过但你没注意到,就不会再次执行)。如果确实未执行,那大概率是前面几点的问题。

如果以上步骤都排查过仍有问题,你可以尝试执行php artisan migrate:status命令,它会列出所有迁移文件的状态(已执行/未执行),能更直观地看到哪些迁移没被执行,方便进一步定位问题。

内容的提问来源于stack exchange,提问作者user6633723

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 08:07:41