php artisan мигрирует с ошибкой sqlite throws, база данных заблокирована - PullRequest
0 голосов
/ 19 января 2019

Я пытался немного поиграть с 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 и все еще получил ту же ошибку.

Я запускаю Laravel на vagrant box, где хост - Windows 10, а guest - Ubuntu 16.04 и использую рекомендуемый метод синхронизации sync_type: smb.

Я знаю, что могу использовать MySQL или другие драйверы, мне было просто интересно узнать, знает ли кто-нибудь, почему.

Кстати, я попробовал fuser database.sqlite и он возвращает пустое значение, что означает, что никакой другой процесс не использует его.

Что я замечаю, так это то, что при запуске php artisan migrate создается новый файл database.sqlite-journal, который также синхронизируется на хосте, и я подумал, возможно ли использование IDE PhpStrom или хоста (Windows) временный database.sqlite-journal и его блокировка?!

1 Ответ

0 голосов
/ 19 января 2019

ОК, я нашел проблему, но я не знаю причину?

Я переключил sync_type для синхронизированной папки между хостом (Windows) и гостем (Ubuntu) с smb на по умолчанию и все работало отлично.

Если кто-то знает, почему sync_type: smb вызывает это, можете опубликовать его.

...