如何为 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 migratephp artisan migrate:back

【讨论】:

【参考方案3】:

如果您渴望这样做,这里是nscreed/laravel-migration-paths 的快速解决方案 包装。非常简单易用。

在定期开发阶段,迁移文件夹可能会变得非常大。如果我们可以组织迁移文件夹的内容,这将非常有帮助。该库有助于组织不同文件夹中的迁移文件。甚至,如果您组织现有文件,它也可以正常工作。

希望对你有帮助。

【讨论】:

【参考方案4】:

您可能想看看这个包,它不是您正在寻找的东西,但它是排序和组织应用程序部分(包括控制器、迁移、模型、视图等)的替代方法。

Nwidart's Laravel Modules 使用 Laravel 进行模块化应用程序开发,

它有助于将您的应用程序组织成模块,因此,您可以在每个模块中创建迁移,并且由于模块位于单独的文件夹中,它有助于以某种方式解决此问题。

【讨论】:

以上是关于如何为 laravel 迁移指定文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 EmrCreateJobFlowOperator 指定配置文件?

如何为 Torch REPL 指定启动文件

如何为 celery 任务日志指定文件路径?

如何为 postgresql 数组数据类型创建 laravel 迁移

如何为 CPack TGZ 生成器指定不同的文件夹结构?

Laravel 数据迁移文件常用方法速查表