You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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的storagebootstrap/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

火山引擎 最新活动