sqlite Laravel php artisan migrate不工作

hvvq6cgz  于 2023-10-23  发布在  SQLite
关注(0)|答案(4)|浏览(144)

当我尝试在Laravel中使用'php artisan migrate'时,我得到2个错误:
[Illuminate\Database\QueryException] SQLSTATE[HY000]:一般错误:26文件已加密或不是数据库(SQL:select * from sqlite_master where type = 'table' and name = migrations)
[PDOException] SQLSTATE[HY000]:一般错误:26文件已加密或不是数据库
在尝试迁移之前,我创建了一个storage/database.sqlite文件。我还编辑了database.php,使default=sqlite。我使用的是windows,安装了sqlite3
有没有人遇到过这种情况/知道如何克服它?

xsuvu9jc

xsuvu9jc1#

我得到了相同的结果,在我的情况下,/database/database.sqlite文件不是空的。
我删除了重新运行php artisan migrate的内容,并成功创建了迁移表。

ou6hu8tu

ou6hu8tu2#

在Powershell控制台下在Windows中运行Laravel,我得到了与原始海报相同的错误。文档内容如下:* 在使用诸如touch database/database.sqlite之类的命令创建新的SQLite数据库后,*.

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...

当创建我的数据库.sqlite文件时,我收到了这些错误。我删除了数据库,并使用New-Item命令重新创建了它,它工作正常

new-item -ItemType File -Name database.sqlite
PS D:\Learning\PHP-Laravel> php artisan migrate
Migration table created successfully.
wnrlj8wa

wnrlj8wa3#

如果有人在sqlite db中手动创建表时出现相同的错误-可能是sqlite版本不匹配。我通过清空数据库文件并使用getConnection()->语句('CREATETABLE')重新创建表来解决相同的错误

de90aj5v

de90aj5v4#

检查你的.sqlite文件是否为空,是否没有缩进(没有空格)

相关问题