Ale*_*chi 14 database sqlite connection configuration laravel
我在文件database
夹中创建了我的database.sqlite文件.我的.env
文件内容是:
DB_CONNECTION=sqlite
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=absolute\path\to\database\database.sqlite
DB_USERNAME=admin
DB_PASSWORD=
Run Code Online (Sandbox Code Playgroud)
当我运行时php artisan tinker
,DB::table('users')->get();
我从数据库中获取信息.
我的DatabaseController是:
class DatabaseController extends Controller
{
public function main()
{
$users = DB::table('users')->get();
return view('database',compact($users));
}
}
Run Code Online (Sandbox Code Playgroud)
然而,当我请求/database
路径时,我收到错误:
QueryException in Connection.php line 647:
Database (database/database.sqlite) does not exist. (SQL: select * from "users")
更新:临时修复是从config
文件夹更改database.php :
'connections' => [
'sqlite' => [
'driver' => 'sqlite',
'database' => 'absolute\path\database\database.sqlite',
'prefix' => '',
],
Run Code Online (Sandbox Code Playgroud)
而不是使用env('DB_DATABASE', database_path('database.sqlite'))
,而database/database.sqlite
不是我的绝对路径.
Ale*_*nin 19
您需要使用完整路径,例如:
DB_DATABASE=/home/laravel-project/database/database.sqlite
Run Code Online (Sandbox Code Playgroud)
如果您DB_DATABASE=...
从.env
文件中删除并使用以下路径config/database.php
:
'database' => env('DB_DATABASE', database_path('database.sqlite')),...
(如果您的database.sqlite
文件位于database/
文件夹中),它也将起作用。
由于 sqlite 仅需要 .env 文件中的 DB_CONNECTION=sqlite,因此您只需删除另一个:
DB_HOST
DB_PORT
DB_DATABASE
DB_USERNAME
DB_PASSWORD
Run Code Online (Sandbox Code Playgroud)
然后保存并再次运行迁移。这就是我解决问题的方法。干杯!
小智 7
在 config/database.php 文件中:
'sqlite' => [
'driver' => 'sqlite',
'database' => dirname(__DIR__).'/database/database.sqlite',
],
Run Code Online (Sandbox Code Playgroud)
然后运行以下命令:
php artisan config:cache
php artisan config:clear
Run Code Online (Sandbox Code Playgroud)
小智 6
正如Chris在评论中所说,主要的解决方案是从 .env 文件中完全删除 DB_DATABASE
(实际上只需要以下代码的第一行)。
DB_CONNECTION=sqlite
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USERNAME=admin
DB_PASSWORD=
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11021 次 |
最近记录: |