我正在尝试从一个.sql文件中读取数据,以便在seeder中填充3-4个表格的一些数据。DatabaseSeeder.php文件如下:
public function run() {
$this->call([
UsersTableSeeder::class,
// Bunch of seeders using Eloquent
SqlSeeder::class
]);
}
所有其他的种子执行了,实际上,在SqlSeeder.php中尝试抛出异常时,我能够停止播种。但是,似乎绕过了php artisan migrate:fresh --seed
,SqlSeeder.php不会为数据库播种。我总是需要在之后运行php artisan db:seed --class SqlSeeder
,以便让它播种数据库。SqlSeeder.php看起来像这样:
public function run() {
$path = base_path().'/database/seeds/sql/data.sql';
$sql = file_get_contents($path);
DB::unprepared($sql);
}
为什么会这样呢?
php artisan migrate:fresh --seed
执行后,检查所有从 SQL 种子生成的表是否为空。 - Andriy Lozynskiydd(DB::unprepared($sql));
的结果是什么? - Jonas Staudenmeir