Когда я пытаюсь использовать php artisan migrate в Laravel, я получаю 2 ошибки:
[Illuminate \ Database \ QueryException] SQLSTATE [HY000]: общая ошибка: 26 файл зашифрован или не является базой данных (SQL: выберите * из sqlite_master, где тип = «таблица» и имя = миграция) [PDOException] SQLSTATE [HY000]: общая ошибка: 26 файл зашифрован или не является базой данных
Я создал файл storage / database.sqlite перед попыткой миграции. Я также отредактировал config / database.php, сделав default=sqlite
, Я использую Windows и имею sqlite3
установлены.
Кто-нибудь сталкивался с этим / знает как пройти?
У меня были такие же результаты, в моем случае /database/database.sqlite
файл не был пустым.
Я удалил содержимое повторно
php artisan migrate
и таблица миграции была успешно создана.
Запустив Laravel в Windows под консолью Powershell, я получил те же ошибки, что и оригинальный постер. Документация гласит После создания новой базы данных SQLite с помощью такой команды, как сенсорная база данных / database.sqlite… Эквивалент PowerShell для прикосновения обычно Out-File FILENAME
PS D:\Learning\PHP-Laravel\database> out-file database.sqlite
PS D:\Learning\PHP-Laravel> php artisan migrate
Illuminate\Database\QueryException : SQLSTATE[HY000]: General error: 26 file is not a database...
При создании моего database.sqlite файл я получил эти ошибки. Я удалил базу данных и воссоздал ее, используя New-Item команда и она работала правильно
new-item -ItemType File -Name database.sqlite
PS D:\Learning\PHP-Laravel> php artisan migrate
Migration table created successfully.
Проверьте файл, который вы сделали как .SQLite и убедитесь, что он пуст, если нет, то сделайте его пустым
database/db.sqlite
затем запустите миграцию
Если кто-то пришел сюда с той же ошибкой с созданной вручную таблицей в sqlite db — это может быть несоответствием версии sqlite. Я решил ту же ошибку, опустошив файл базы данных и воссоздав таблицу с помощью инструкции getConnection () -> (‘CREATE TABLE