Laravel全新安装报错:SQLite不存在sessions表
解决Laravel全新安装后SQLite找不到sessions表的错误
错误信息:
SQLSTATE[HY000]: General error: 1 no such table: sessions (Connection: sqlite, SQL: select * from "sessions" where "id" = nP0nQ4xISlb3C8o6KVpl86TUj7QplAi8G0QNw624 limit 1)
错误原因
Laravel默认使用database会话驱动,该驱动依赖sessions表存储会话数据,但全新安装后未生成该表,导致查询失败。
解决步骤
- 确认
.env配置:检查DB_CONNECTION=sqlite,且DB_DATABASE指向正确的SQLite文件路径(默认是database/database.sqlite)。 - 生成会话表迁移(若缺失):执行命令
php artisan session:table,生成创建sessions表的迁移文件。 - 运行迁移:执行
php artisan migrate,创建所有默认数据库表,包括sessions表。 - 权限检查:确保Laravel对
database/database.sqlite文件有读写权限,若文件不存在,可手动创建(如Linux下执行touch database/database.sqlite)。
查询触发位置
该查询由Laravel的Illuminate\Session\DatabaseSessionHandler类自动发起,当应用尝试读取、写入会话数据时触发,属于框架内置的会话管理逻辑。
内容的提问来源于stack exchange,提问作者Thebuilder
相关产品推荐
相关产品推荐

