问题现象
ohpm-repo的5.0.7升级到5.0.8后,私仓报错获取最近一周包下载量数据失败, 所有ohpm包都无法下载。
问题定位
- 查看服务器日志,运行日志和错误运行日志均可,日志具体路径。查阅日志可以看到有“写入下载量文件失败”(该文件是ohpm-repo运行过程产生的用户信息,运行状态等数据存储配置,支持本地磁盘存储和mysql存储)。
- 开发者的下载量是记录在本地的json文件中(db的type为filedb,默认路径为./db),查看json文件,发现json文件格式错误,最终导致写入文件失败,表现出获取下载量数据失败以及无法下载ohpm包。
分析结论
写入下载量的json文件格式错误,把json文件数据清空,设置为空数组,重新写入运行即恢复正常。
修改建议
对于企业单位,推荐使用数据库这种严格校验的方式存储,而不是使用json格式文件存储。改变db存储方式由本地磁盘filedb(此案例用本地json文件)转为mysql存储可以参考:数据迁移。