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