Laravel 8 + SQLite执行php artisan migrate遇只读数据库错误(Windows)求解决
解决Windows下Laravel 8 SQLite迁移 "readonly database" 错误
我来帮你搞定这个问题——Linux系统的chmod命令在Windows上确实用不了,咱们换Windows专属的方法来解决:
1. 检查并设置文件/目录权限
SQLite报错“readonly database”最常见的原因就是当前用户没有写入权限,按下面步骤操作:
- 找到你的SQLite数据库文件,通常路径是
database/database.sqlite - 右键该文件,选择属性 → 切换到安全选项卡
- 找到当前登录的Windows用户,确保它拥有读取和写入权限;如果没有,点击「编辑」按钮,添加对应权限后保存
- 同样,不要忘了给Laravel的
storage和bootstrap/cache目录设置写入权限,迁移过程中需要往这些目录写缓存和日志文件
2. 以管理员身份运行终端/IDE
有时候普通用户权限不足以修改文件,试试:
- 右键点击你的终端(CMD/PowerShell)或者代码编辑器(VS Code/PhpStorm),选择「以管理员身份运行」
- 打开项目目录,重新执行迁移命令:
php artisan migrate
3. 关闭占用数据库文件的其他程序
如果你的database.sqlite文件正在被其他工具(比如DB Browser for SQLite、Navicat等)打开,会被锁定导致无法写入,先关闭这些工具再尝试迁移。
4. 手动创建数据库文件(可选)
如果Laravel自动创建数据库文件时权限异常,你可以手动操作:
- 打开项目的
database目录,新建一个空的文件,命名为database.sqlite - 给这个新文件设置好写入权限(参考第一步),然后再执行迁移命令
内容的提问来源于stack exchange,提问作者Hazem Ahmed




