数据库(database / database.sqlite)不存在。数据库来自工匠修补匠

时间:2017-03-31 12:29:18

标签: database laravel sqlite configuration connection

我在const UInt8* pByteBuffer = sf::Image::getPixelsPtr(); const UInt32* pPixelBuffer = reinterpret_cast<const UInt32*>(pByteBuffer); size_t numPixels = getSize().x * getSize().y; for (int i = 0; i < numPixels; ++i) { uint32_t pixel = pPixelBuffer[i]; } 文件夹中创建了我的database.sqlite文件。我的database文件内容为:

.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= php artisan tinker时,我从数据库中获取信息。

我的DatabaseController是:

DB::table('users')->get();

然而,当我请求class DatabaseController extends Controller { public function main() { $users = DB::table('users')->get(); return view('database',compact($users)); } } 路径时,我收到错误:

/database

更新: 临时修复是从QueryException in Connection.php line 647: Database (database/database.sqlite) does not exist. (SQL: select * from "users")文件夹中更改database.php:

config

而不是使用 'connections' => [ 'sqlite' => [ 'driver' => 'sqlite', 'database' => 'absolute\path\database\database.sqlite', 'prefix' => '', ], ,它返回env('DB_DATABASE', database_path('database.sqlite'))而不是我的绝对路径。

9 个答案:

答案 0 :(得分:14)

您需要使用完整路径,例如:

DB_DATABASE=/home/laravel-project/database/database.sqlite

答案 1 :(得分:7)

如果您从Online Help文件中删除DB_DATABASE=...并使用.env中的路径:

config/database.php

(如果您的'database' => env('DB_DATABASE', database_path('database.sqlite')),...文件位于database.sqlite文件夹中),它也会起作用。

答案 2 :(得分:3)

我运行了以下命令:

php artisan config:cache

php artisan config:clear

php artisan serve - 重新启动服务器

答案 3 :(得分:2)

正如Chris在评论中所说的,主要的解决办法是从.env文件中彻底删除 DB_DATABASE(其实就是下面代码的第一行需要)。

DB_CONNECTION=sqlite
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USERNAME=admin
DB_PASSWORD=

答案 4 :(得分:2)

对于Windows,您需要像这样设置路径

DB_DATABASE="C:\\xampp\\htdocs\\project\\data\\database.db"

答案 5 :(得分:1)

在config / database.php文件中:

'sqlite' => [
              'driver' => 'sqlite',
              'database' => dirname(__DIR__).'/database/database.sqlite',
            ],

然后运行以下命令:

php artisan config:cache
php artisan config:clear

答案 6 :(得分:0)

我认为,这里的问题是由于 Homestead 造成的。 本地计算机上 database.sqlite 文件的绝对路径与虚拟机具有的虚拟路径不同。

在我的情况下,必须设置:

DB_DATABASE=/home/vagrant/code/database/database.sqlite

或者,您可以注释掉这一行,然后就可以开始了。

#DB_DATABASE=

答案 7 :(得分:0)

对于仍面临此问题的用户:https://laracasts.com/discuss/channels/general-discussion/database-databasedatabasesqlite-does-not-exist-error-on-running?page=1

由于sqlite仅需要.env文件中的DB_CONNECTION = sqlite,因此您只需删除另一个即可:

DB_HOST
DB_PORT
DB_DATABASE
DB_USERNAME
DB_PASSWORD

然后保存并再次运行迁移。这就是我解决问题的方式。干杯!

答案 8 :(得分:0)

从 C: 目录转到 PHP 文件夹并打开文件 php.ini。 从那里找到 extension=pdo_sqlite 并删除 ;