laravel - 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
并锁定它?!
解决方案
好的,我找到了问题,但我不知道原因?
我将sync_type
主机(Windows)和来宾(Ubuntu)之间的同步文件夹从smb切换为默认值,一切正常。
如果有人知道sync_type: smb
原因,可以发布它。