[英]Laravel sqlite saying the database is “encrypted or is not a database”
我的計算機上有一個名為testing.sqlite的數據庫文件,其中包含我要用於測試的數據庫副本(而不是連接到普通的MySQL生產服務器)。
我按照指示在laravel的config / database文件中創建了一個條目,將其設置為訪問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無法讀取它?
問題是sqlite的版本不同。 Laravel使用sqlite3,但是控制台上的sqlite命令可能是較早的版本。 從命令行運行sqlite -version
以檢查您的版本-大概是2件事情。 您需要安裝sqlite3,並且會發現它不兼容-即sqlite3 testing.sqlite
將產生與laravel相同的錯誤。
因此,升級您的命令行sqlite版本,然后將數據復制到新的sqlite3數據庫中,laravel將正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.