首页 > 解决方案 > php artisan migrate with sqlite 抛出错误,数据库被锁定

问题描述

我试图用 Laravel 和 SQLite 玩一点,但每当我运行时,php artisan migrate我总是会遇到同样的错误:Illuminate\Database\QueryException : SQLSTATE[HY000]: General error: 5 database is locked (SQL: create table "migrations" ("id" integer not null primary key autoincrement, "migration" varchar not null, "batch" integer not null))

我尝试了所有选项,尝试运行命令,sudo php artisan migrate但仍然没有运气,我将目录和文件权限设置为 777,但仍然遇到相同的错误。

我在 vagrant box 上运行 Laravel,主机是 Windows 10,来宾是 Ubuntu 16.04,并使用推荐的同步方法sync_type: smb

我知道我可以使用 MySQL 或其他驱动程序,我只是好奇看看是否有人知道原因。

顺便说一句,我尝试过fuser database.sqlite它返回空,这意味着没有其他进程正在使用它。

我注意到的是,当我运行时php artisan migrate创建了一个新文件,database.sqlite-journal该文件也在主机上同步,我在想是否有可能 IDE PhpStrom 或主机(Windows)正在使用临时文件database.sqlite-journal并锁定它?!

标签: laravelsqlitelaravel-artisanartisan-migrate

解决方案


好的,我找到了问题,但我不知道原因?

我将sync_type主机(Windows)和来宾(Ubuntu)之间的同步文件夹从smb切换为默认值,一切正常。

如果有人知道sync_type: smb原因,可以发布它。


推荐阅读