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

Laravel 11调用未创建的sessions表致应用崩溃,求助原因

Laravel 11 缺失sessions表报错问题解析

问题描述

尝试使用Laravel 11开发时,删除了框架默认的所有迁移文件并创建自定义迁移,甚至删除了MySQL数据库(实际无需此操作,Laravel 11新项目可复用旧数据),但应用无法正常运行,出现如下错误:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'mydatabase.sessions' doesn't exist

疑问:未手动创建sessions表,为何会被代码调用?

原因分析

  • sessions表是Laravel默认会话驱动(数据库驱动)的依赖表,框架默认会用数据库存储用户会话数据,即便你没手动创建,会话组件依然会尝试读写该表。
  • Laravel 11的默认会话配置(config/session.php)中,driver选项默认值为database,即采用数据库存储会话。
  • 框架原本自带创建sessions表的迁移文件,但你删除了所有默认迁移,导致该表从未被创建。只要应用涉及会话操作(比如用户访问页面、登录逻辑等),就会触发对该表的访问,进而报错。

解决办法

  • 若继续使用数据库会话驱动:运行命令php artisan session:table重新生成sessions表的迁移文件,再执行php artisan migrate完成表创建。
  • 若无需数据库存储会话:修改config/session.php中的driver选项,改为file(会话存储在服务器文件中)、cookie(会话存储在客户端Cookie中)等其他适配的驱动即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 01:10:03