You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 11升级部署Heroku报错:SQLite数据库文件不存在(未用数据库)

问题根源

报错来自Laravel的Session系统——默认使用database驱动,即便你的业务代码没用到数据库,Session仍会尝试连接默认的SQLite数据库,而Heroku部署环境中不存在/app/database/database.sqlite文件,因此触发报错。

解决方案

1. 切换Session驱动为无依赖类型

选择不需要数据库的Session驱动,推荐优先用cookie(适配无数据库场景),也可选file(需处理存储目录):

  • 通过环境变量修改:
    在Heroku的环境变量中添加/修改:

    SESSION_DRIVER=cookie
    

    本地开发的.env也可同步修改,保持环境一致。

  • 或直接修改配置文件:
    编辑config/session.php,将驱动默认值改为cookie:

    'driver' => env('SESSION_DRIVER', 'cookie'),
    

2. 若选择file驱动(需注意Heroku临时文件特性)

如果偏好file驱动,需确保Session存储目录存在,在composer.json中添加部署后自动创建目录的脚本:

"scripts": {
    "post-install-cmd": [
        "@php artisan storage:link",
        "mkdir -p storage/framework/sessions"
    ]
}

提交修改后重新部署到Heroku即可。

3. 确认APP_KEY已配置

使用cookie驱动时,必须确保Heroku环境中设置了APP_KEY,可通过Heroku CLI执行:

heroku config:set APP_KEY=你的本地APP_KEY值

(本地.env中的APP_KEY可直接复用)

额外说明

你的config/database.php仅配置了迁移相关项,Laravel 11会使用默认数据库连接配置(默认SQLite),但只要Session不使用database驱动,就不会触发该报错,无需额外修改数据库配置。

内容的提问来源于stack exchange,提问作者Salar Houshvand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 06:11:04