我正在关注这个 Laravel 训练营:
https://bootcamp.laravel.com/inertia/installation
我安装了 Laravel 并按照指示将 DB_CONNECTION 更改为 sqlite。
但是,当我尝试通过运行迁移来完成 Laravel Breeze 的安装时,我收到了来自 sqlite 的异常。
这是命令的输出:
$ php artisan migrate
Illuminate\Database\QueryException
SQLSTATE[HY000]: General error: 1 no such table: pragma_compile_options (Connection: sqlite, SQL: select exists (select 1 from pragma_compile_options where compile_options = 'ENABLE_DBSTAT_VTAB') as enabled)
at vendor/laravel/framework/src/Illuminate/Database/Connection.php:822
818▕ $this->getName(), $query, $this->prepareBindings($bindings), $e
819▕ );
820▕ }
821▕
➜ 822▕ throw new QueryException(
823▕ $this->getName(), $query, $this->prepareBindings($bindings), $e
824▕ );
825▕ }
826▕ }
+30 vendor frames
31 artisan:35
Illuminate\Foundation\Console\Kernel::handle()
我尝试用谷歌搜索错误消息,但没有找到任何结果。
这里是使用的sqlite版本:
$ sqlite3 --version
3.32.3 2020-06-18 14:00:33 7ebdfa80be8e8e73324b8d66b3460222eb74c7e9dfd655b48d6ca7e1933cc8fd
我可以做些什么来继续使用 sqlite 作为数据库的教程吗?
尝试删除/删除所有表:
php artisan db:wipe
然后重复:
php artisan migrate
最后确保数据库有初始数据,例如:
php artisan db:seed
完成!如果出现同样的错误,请尝试在数据库迁移 PHP 脚本中手动创建
pragma_compile_options
。
但是说迁移需要在给你错误的迁移之前发生,我的意思是,迁移是按文件名的顺序执行的,确保所述迁移在文件资源管理器/Finder中具有正确的顺序。