docker 镜像 snipe-it v7.0.10 更新至 v7.0.11 后,网站登陆后报错:500 错误,查看
docker logs snipe-it
无任何报错信息
解决步骤
- 开启 snipe-it 的 debug 模式:
# docker conpose 文件中 env_file 指定的文件修改如下参数,并重启容器: APP_DEBUG=true
- 登录 snipe-it,页面显示具体错误信息如下:
Illuminate\Database\QueryException PHP 8.2.20 10.48.14 SQLSTATE[42S02]: Base table or view not found: 1146 Table 'snipeit.accessories_checkout' doesn't exist select `accessories`.*, ( select count(*) from `accessories_checkout` where `accessories`.`id` = `accessories_checkout`.`accessory_id` ) as `checkouts_count` from `accessories` where `min_amt` is not null and `accessories`.`deleted_at` is null
依据提示
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'snipeit.accessories_checkout' doesn't exist
应该是没有找到某个表,通常是因为版本升级后数据库迁移未成功或某些表未正确创建。 - 进入 snipe-it 容器,并运行以下命令来检查数迁移状态:
php artisan migrate:status
有很多 Penging 的表 add 还没有进行:
-
运行以下命令执行迁移:
php artisan migrate
键入 yes 以便允许进行迁移
-
关闭 snipe-it 的 debug 模式,并重启容器,重新登录系统,问题解决!