Laravel 尝试执行自定义命令以运行迁移时出错

Laravel 尝试执行自定义命令以运行迁移时出错,laravel,database-migration,Laravel,Database Migration,我正在尝试创建一个命令,以一次执行所有迁移,但方式是将每个迁移分配给不同的批处理 作为第一次尝试,我创建的命令包含: class CreateDBStructure extends Command { protected $signature = 'database:create'; ... public function handle(){ $this->call('migrate', [ '--path' =>

我正在尝试创建一个命令,以一次执行所有迁移,但方式是将每个迁移分配给不同的批处理

作为第一次尝试,我创建的命令包含:

class CreateDBStructure extends Command {

    protected $signature = 'database:create';

    ...

    public function handle(){
        $this->call('migrate', [
            '--path' => 'database/migrations/2021_01_01_create_roles_table.php',
            'name' => 'CreateRolesTable'
        ]);
    }
}
在内核中:

protected $commands = [
    'App\Console\Commands\CreateDBStructure',
];
和迁移类名:

class CreateRolesTable extends Migration {

    ...

}
我得到以下错误:

php artisan数据库:创建

“name”参数不存在

我不太明白为什么我会犯这个错误。拜托,你能帮我吗

php artisan cache:clear、composer dump autoload和其他类似命令不起作用


非常感谢您。

您正在调用
make:migration
,在给定的目录路径中创建一个迁移,该路径作为文件存在。因此出现错误
mkdir():文件存在
。为什么需要自定义命令?只需运行
php artisan migrate
。问题是,如果我只运行php artisan migrate,它将使用同一批创建所有迁移,我不想这样做。我希望每个迁移都有不同的批处理。很抱歉使用“make:migration”命令。我犯了一个错误,因为我试了很多次,用了很多不同的方法。命令“migrate”返回“name”参数不存在”。但我传递了一个“name”参数。我更新questionmigrate命令时有一个选项:--步骤强制运行迁移,以便可以单独回滚迁移。所以运行
php artisan迁移——步骤