Closed springjk closed 7 years ago
先migrate, 再在AppServiceProvider添加load
@z-song 我上面有说场景,比如是部署代码,如果是本地开发可以改改代码或者先注释,服务器上大多需要一些自动化脚本,此时数据库是空的,如果要做的你说说的,就需要在脚本中按照方案1先临时注释,再进行开启,要写一个定位到某某行的脚本较为麻烦并且存在时效性,所以大多只能采用方案3,但我认为这样在任何时候都要多一次数据库查询,似乎不是好办法。
确实没有一个很好的办法,参考的另一个包https://github.com/laravel-backpack/settings就是用的方案三
触发: 当在
AppServiceProvider
的 boot 中添加Config::load();
时如果数据库中无admin_config
表就会触发,此处对表进行了全读取。场景: 服务器上部署代码是先拉取代码再执行
php artisan migrate
等命令来安装初始化的,但是这个时候load
因为在boot
中,任何地方都会触发,所以连php artisan
都无法执行,形成了死循环。解决方案:
php artisan admin:import config
命令执行完成后再打开admin_config
表但以上三种方法均非良策,看代码是因为要压入系统配置函数所以直接初始化,有无更好的方法直接在包里改进?