Laravel sqlite говорит, что база данных «зашифрована или не является базой данных»

У меня есть файл базы данных на моем компьютере с именем testing.sqlite, в котором содержится копия базы данных, которую я хочу использовать для тестирования (вместо подключения к обычному производственному серверу MySQL).

Я создал запись в файле config / database в laravel в соответствии с инструкциями, настроив ее для доступа к файлу sqlite, и все выглядит правильно. Но когда я пытаюсь что-то сделать, я получаю сообщение об ошибке:

[Illuminate\Database\QueryException]
SQLSTATE[HY000]: General error: 26 file is encrypted or is not a database (SQL: select * from sqlite_master where type = 'table' and name = vendor_alerts)

Я могу получить доступ к файлу, используя sqlite testing.sqlite из командной строки, почему Laravel не может прочитать это?

1

Решение

Проблема в том, что версия sqlite отличается. Laravel использует sqlite3, поэтому команда sqlite на вашей консоли может быть более ранней версией. Бежать sqlite -version из командной строки, чтобы проверить свою версию — это, вероятно, что-то 2. Вам нужно установить sqlite3, и вы обнаружите, что он не совместим — т.е. sqlite3 testing.sqlite выдаст ту же ошибку, которую вы получаете от laravel.

Поэтому обновите версию командной строки sqlite и скопируйте данные в новую базу данных sqlite3, и laravel будет работать без проблем.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]