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

如何修改Laravel中创建迁移文件的默认目录

修改Laravel迁移文件默认生成目录

要让php artisan make:migration默认将文件生成到database/migrations/child_database,不用每次加--path参数,你可以通过重写默认的迁移生成命令来实现,具体步骤如下:

步骤1:创建自定义迁移命令类

先生成一个自定义命令文件:

php artisan make:command CustomMakeMigrationCommand

打开生成的app/Console/Commands/CustomMakeMigrationCommand.php,替换内容为:

<?php

namespace App\Console\Commands;

use Illuminate\Database\Console\Migrations\MakeMigrationCommand;
use Illuminate\Support\Composer;

class CustomMakeMigrationCommand extends MakeMigrationCommand
{
    // 自定义默认迁移目录
    protected $defaultPath = 'database/migrations/child_database';

    public function __construct(Composer $composer)
    {
        parent::__construct($composer);
    }
}

步骤2:替换默认命令

打开app/Providers/AppServiceProvider.php,在boot方法中添加代码,用自定义命令替换系统默认的迁移生成命令:

public function boot()
{
    $this->app->extend('command.migrate.make', function ($originalCommand, $app) {
        return new \App\Console\Commands\CustomMakeMigrationCommand($app['composer']);
    });
}

步骤3:确保目标目录存在

手动创建database/migrations/child_database目录,避免生成文件时出现目录不存在的错误:

mkdir -p database/migrations/child_database

验证效果

现在执行常规的迁移生成命令:

php artisan make:migration create_users_table

文件会自动生成到database/migrations/child_database目录下,无需再添加--path参数。如果之后需要临时切换回原目录,只需加--path=database/migrations参数即可覆盖默认设置。

内容的提问来源于stack exchange,提问作者Engr. Umar Ejaz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 10:01:25