【问题标题】:Running 'php artisan migrate:fresh' in Laravel code在 Laravel 代码中运行 'php artisan migrate:fresh'
【发布时间】:2020-05-27 00:15:27
【问题描述】:

是否可以在没有 shell 的实际 Laravel 代码中运行 php artisan migrate:fresh?例如在此函数中加载表工厂之前。

Route::get('/seed', function () {
    // php artisan migrate:fresh
    factory(App\User::class)->create();
    factory(App\Models\Campaign::class, 20)->create();
    factory(App\Models\Model::class, 200)->create();
    factory(App\Models\Trim::class, 400)->create();
    factory(App\Models\Color::class, 800)->create();
    factory(App\Models\Specification::class, 800)->create();
    factory(App\Models\Option::class, 800)->create();
    factory(App\Models\LeaseLength::class, 800)->create();
    factory(App\Models\Mileage::class, 800)->create();
    factory(App\Models\ExtraOption::class, 800)->create();

    return redirect()->back();
});

这样做的目标是在再次播种之前清理表。

【问题讨论】:

  • 是的,您阅读文档了吗? laravel.com/docs/6.x/…
  • 你想从你的控制器或路由中运行 artisan 命令,而不需要 shell?
  • ^ 没关系...我发布的链接实际上是说“例如,您可能希望从 路由或控制器触发 Artisan 命令。”。 Artisan 外观在 Laravel 的任何地方都可用。
  • 没问题!只是一个注释;小心你如何使用它。您可能不希望任何人都可以访问此路线...php artisan migrate:fresh 核对您数据库中的所有数据并重建它,并且在实际情况下应谨慎运行。通过一个简单的GET 请求获得它会引发警告:)
  • @TimLewis 是的!我目前拥有它,因为此应用程序仍处于早期开发阶段。 :)

标签: php mysql laravel laravel-artisan


【解决方案1】:

您可以像这样从控制器运行artisan 命令

use Artisan;

public function artisan()
   {
       Artisan::call('migrate:fresh');
       Artisan::call('make:seeder UsersTableSeeder');
       Artisan::call('config:clear');
   }

【讨论】:

    猜你喜欢
    • 2021-03-04
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 2019-02-17
    • 1970-01-01
    • 2020-08-30
    • 2020-01-09
    相关资源
    最近更新 更多