我的路线如下:
Route::get('/beneficiaries/seed', function () {
echo "<p>Database seeding started...</p>";
$exitCode = Artisan::call('db:seed');
echo "<p>Database seeding completed.</p>";
});在我当地的环境中,当我访问‘/受益人/种子’时,它为数据库播下种子。但是如果我在生产中做同样的事情,它就不会了,我只是复制了播种机类和路由文件。
DatabaseSeeder:
class DatabaseSeeder extends Seeder
{
public function run()
{
$this->call(BeneficiariesTableSeeder::class);
}
}BeneficiariesTableSeeder:
class BeneficiariesTableSeeder extends Seeder
{
public function run()
{
//seeding logic...
}
}为什么我的生产Artisan命令不被执行?(我没有使用数据库事务处理。即使是w/o,由于没有引发错误,本地db也会被种子化。)
发布于 2018-03-07 18:50:30
当您在生产中运行php artisan db:seed时,会有一个警告询问您是否要在生产中为数据库添加种子。
生产中的这种警告确认是Artisan::call('db:seed')无法在生产中工作的原因。
为了避免警告,您可以使用--force标志,如:php artisan db:seed --force。
溶液
若要在代码中执行同样的操作,请使用Artisan::call('db:seed', ['--force' => true]);
https://stackoverflow.com/questions/49158851
复制相似问题