【问题标题】:How to specify folder for laravel migrations?如何为 laravel 迁移指定文件夹?
【发布时间】:2019-07-27 20:36:38
【问题描述】:

我正在尝试将 laravel 数据库迁移放在子文件夹中,但不确定如何执行此操作。

【问题讨论】:

标签: laravel laravel-migrations


【解决方案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 进行模块化应用程序开发,

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

      【讨论】:

        猜你喜欢
        • 2019-02-25
        • 2019-12-05
        • 2018-01-10
        • 2020-09-21
        • 2017-09-18
        • 2018-03-09
        • 2022-09-29
        • 1970-01-01
        • 2021-08-09
        相关资源
        最近更新 更多