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

Laravel:migrate命令支持文件夹吗?为何文件夹内迁移未执行?

解决Laravel自定义迁移文件夹无法自动执行的问题

问题原因

Laravel默认仅自动扫描database/migrations根目录下的迁移文件,不会识别子文件夹,因此你在database/migrations/<MyFolderName>中创建的迁移无法被默认的migrate命令检测到。

解决方案(永久生效,无需每次指定路径)

修改app/Providers/AppServiceProvider.php文件,在boot方法中注册额外的迁移路径,让Laravel自动扫描你的自定义文件夹:

<?php

namespace App\Providers;

use Illuminate\Database\Migrations\Migrator;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     */
    public function boot(): void
    {
        // 注册默认迁移目录 + 自定义迁移目录
        $this->app->make(Migrator::class)->path([
            database_path('migrations'),
            database_path('migrations/MyFolderName'), // 替换为你的实际子文件夹名称
        ]);
    }

    // ... 其他原有代码
}

验证与执行

  1. 执行以下命令查看迁移状态,此时应能看到你新建的迁移文件:
php artisan migrate:status
  1. 再次执行迁移命令,即可正常运行自定义文件夹内的迁移:
php artisan migrate

额外排查点

  • 确认迁移文件命名符合Laravel规范:必须以时间戳开头(你的文件2022_08_23_090654_create_<whatever>_table已符合要求)
  • 确认迁移文件中的类名与文件名一致,例如文件名2022_08_23_090654_create_whatever_table.php对应的类名应为CreateWhateverTable

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 16:09:17