Php Laravel sqlite说数据库是;加密或不是数据库;
我的计算机上有一个名为testing.sqlite的数据库文件,其中包含我想要用于测试的me数据库的副本(而不是连接到我的普通MySQL生产服务器) 我按照说明在laravel中的config/database文件中创建了一个条目,将其设置为访问sqlite文件,看起来一切正常。但当我尝试并实际执行任何操作时,我会收到错误消息:Php Laravel sqlite说数据库是;加密或不是数据库;,php,database,sqlite,laravel-4,Php,Database,Sqlite,Laravel 4,我的计算机上有一个名为testing.sqlite的数据库文件,其中包含我想要用于测试的me数据库的副本(而不是连接到我的普通MySQL生产服务器) 我按照说明在laravel中的config/database文件中创建了一个条目,将其设置为访问sqlite文件,看起来一切正常。但当我尝试并实际执行任何操作时,我会收到错误消息: [Illuminate\Database\QueryException]
[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测试。sqlite
将产生与您从laravel获得的错误相同的错误
因此,升级您的命令行sqlite版本,并将数据复制到一个新的sqlite3数据库中,laravel将顺利工作