如何为 laravel 迁移指定文件夹?
Posted
技术标签:
【中文标题】如何为 laravel 迁移指定文件夹?【英文标题】:How to specify folder for laravel migrations? 【发布时间】:2019-07-27 20:36:38 【问题描述】:我正在尝试将 laravel 数据库迁移放在子文件夹中,但不确定如何执行此操作。
【问题讨论】:
***.com/questions/21641606/… 是的,迁移部分很清楚,但我关心的是 make:migration Laravel 5.6: Migration from a specific folder的可能重复 不,@dparoli,我有兴趣进行迁移,而不是运行它们。 参数相同:php artisan make:migration --path=/database/migrations/your_path
【参考方案1】:
在创建新迁移和执行迁移时,您可以通过命令行界面传入path
参数,以指定它将用于分别创建和运行迁移的目录。
php artisan make:migration create_users_table --path=/path/to/your/migration/directory
php artisan migrate --path=/path/to/your/migration/directory
【讨论】:
一个要精确的例子:php artisan make:migration create_users_table --path=database/migrations/v1/
【参考方案2】:
在AppServiceProvider中,找到boot方法并添加如下
$mainPath = database_path('migrations');
$directories = glob($mainPath . '/*' , GLOB_ONLYDIR);
$paths = array_merge([$mainPath], $directories);
$this->loadMigrationsFrom($paths);
现在您可以在子文件夹中进行迁移时使用php artisan migrate
和php artisan migrate:back
【讨论】:
【参考方案3】:如果您渴望这样做,这里是nscreed/laravel-migration-paths 的快速解决方案 包装。非常简单易用。
在定期开发阶段,迁移文件夹可能会变得非常大。如果我们可以组织迁移文件夹的内容,这将非常有帮助。该库有助于组织不同文件夹中的迁移文件。甚至,如果您组织现有文件,它也可以正常工作。
希望对你有帮助。
【讨论】:
【参考方案4】:您可能想看看这个包,它不是您正在寻找的东西,但它是排序和组织应用程序部分(包括控制器、迁移、模型、视图等)的替代方法。
Nwidart's Laravel Modules 使用 Laravel 进行模块化应用程序开发,
它有助于将您的应用程序组织成模块,因此,您可以在每个模块中创建迁移,并且由于模块位于单独的文件夹中,它有助于以某种方式解决此问题。
【讨论】:
以上是关于如何为 laravel 迁移指定文件夹?的主要内容,如果未能解决你的问题,请参考以下文章
如何为 EmrCreateJobFlowOperator 指定配置文件?