laravel - 为什么 php artisan migrate fresh --seed 不能正常工作
问题描述
嗨开发人员我有关于php artisan migrate:refresh --seed VS php artisan db:seed的问题我只是想问,因为我在 php artisan migrate:refresh --seed 上有问题,但是当我使用 php artisan db::种子它可以正常工作
现在我在播种机上创建的数据没有播种到表中。不知道为什么问题出在哪里
播种:VehicleModelsSeeder
播种:VehicleModelsSeeder(0 秒)
这是我的车型播种机课
<?php
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
use App\Vehicle;
use App\VehicleModel;
class VehicleModelsSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
//
$vehicles = Vehicle::all();
foreach($vehicles as $vehicles_data) {
VehicleModel::forceCreate([
'name' => Str::random(5),
'vehicle_id' => $vehicles_data->id
]);
}
}
}
解决方案
默认情况下,该db:seed
命令运行Database\Seeders\DatabaseSeeder
该类。
有两种解决方案:
1. 您需要在默认播种机的运行方法中调用您的附加播种机。
database/seeders/DatabaseSeeder.php
public function run()
{
$this->call([
VehicleModelsSeeder::class
]);
}
然后:
php artisan migrate:refresh --seed
2. 您可以使用 flag 指定要运行的播种机--class
,但在这种情况下,您需要分别运行refresh
和migrate
命令:
php artisan migrate:refresh
php artisan db:seed --class:VehicleModelsSeeder
更多信息:Laravel 数据库播种文档
推荐阅读
- ruby-on-rails - Rails 的模型挂钩会等到数据库事务完成吗?
- maven - 无法使用 Maven 从 XSD 文件生成源文件?
- intellij-idea - 在两个 IntelliJ IDE 之间同步插件 - 哪个是所有其他 IDE 必须同步的“主要”插件?
- ssh - 如何从 ansible playbook 构建自定义的 ssh 连接
- javascript - 为 Win32 x64 编译后,Electron 应用程序无法打开
- python - Mailchimp API v3 python 活动列表
- reactjs - 使用spring boot Twilio Api反应js axios的帖子正文中缺少必需的参数To
- node.js - Express server console.log 问题:“字符串”类型上不存在“地址”
- python-3.x - tkinter update() 和 update_idletasks()
- asp.net - 如何在 navigeteurl 中使用 eval?