gpt4 book ai didi

laravel - 工匠制作 :migration ignores subfolders?

转载 作者:行者123 更新时间:2023-12-04 04:00:49 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Laravel running migrations on "app/database/migrations" folder recursively

(13 个回答)


去年关闭。




我在 database/migrations/ 中使用 Laravel 5.6 和迁移文件打电话时工作 artisan migrate但子文件夹中的迁移文件,如 database/migrations/example被跳过。
artisan migrate:status不显示子文件夹。
如何告诉 Laravel 还包含来自子文件夹的迁移文件?

最佳答案

vendor\laravel\framework\src\Illuminate\Database\Migrations\Migrator.php line 465


我猜自 Laravel 5.7 以来的行号相同,有这一行:
return Str::endsWith($path, '.php') ? [$path] : $this->files->glob($path.'/*_*.php');
这将查找与 *_*.php 匹配的根迁移路径图案。如果是 **/*_*.php你会完成你想要的。

但是,好消息!它可以被黑客入侵!负责获取路径的方法:

vendor\laravel\framework\src\Illuminate\Database\Console\Migrations\BaseCommand.php line 19


表示您提供给命令的路径参数不会被清理或修改,
    if ($this->input->hasOption('path') && $this->option('path')) {
return collect($this->option('path'))->map(function ($path) {
return ! $this->usingRealPath()
? $this->laravel->basePath().'/'.$path
: $path;
})->all();
}
因此,设置 path参数为 database/migrations/**应该使您能够递归到子文件夹中。
php artisan migrate --path="database/migrations/**"
注意:然后,对于每个 migrate[:*]命令工作,你需要指定 --path属性。我迁移并回滚了 --path属性,它起作用了。

关于laravel - 工匠制作 :migration ignores subfolders?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63070827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com