我的应用程序需要一个预先注册的数据集才能工作。因此,当我设置应用程序时,需要将它们插入数据库中。
Laravel 提供了两种机制:
当我阅读这个描述时,似乎都不太适合我的情况。
在 stackoverflow 上问过类似的问题,并且有一个答案。该答案建议使用数据库填充器通过检测当前环境来填充数据库:
<?php
class DatabaseSeeder extends Seeder {
public function run()
{
Eloquent::unguard();
if (App::environment() === 'production')
{
$this->call('ProductionSeeder');
}
else
{
$this->call('StagingSeeder');
}
}
}
当然,这个解决方案是可行的。但我不确定这是否是正确的方法,因为通过使用seeder插入数据,您正在失去迁移机制提供的所有优势(数据库升级,回滚等)。我想知道在这种情况下最佳实践是什么。