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=
_
_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));
}
}
_
それでも_/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' => '',
],
_
絶対パスではなく_database/database.sqlite
_を返すenv('DB_DATABASE', database_path('database.sqlite'))
を使用する代わりに。
次のようなフルパスを使用する必要があります。
DB_DATABASE=/home/laravel-project/database/database.sqlite
_DB_DATABASE=...
_ファイルから_.env
_を削除し、_config/database.php
_のパスを使用する場合:
'database' => env('DB_DATABASE', database_path('database.sqlite')),...
(_database.sqlite
_ファイルが_database/
_フォルダーにある場合)、それも動作します。
次のコマンドを実行しました。
php artisan config:cache
php artisan config:clear
php artisan serve
-サーバーを再起動しました
Config/database.phpファイル内:
'sqlite' => [
'driver' => 'sqlite',
'database' => dirname(__DIR__).'/database/database.sqlite',
],
次に、次のコマンドを実行します。
php artisan config:cache
php artisan config:clear
まだこの問題に直面している人のために: 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
その後、移行を保存して再度実行します。これが私が問題を解決する方法でした。乾杯!
ここでの問題はHomesteadが原因だったと思います。ローカルマシン上のdatabase.sqliteファイルへの絶対パスは、仮想マシンとは異なります。
私の場合、設定する必要がありました:
DB_DATABASE=/home/vagrant/code/database/database.sqlite
または、この行をコメントアウトするだけで準備完了です。
#DB_DATABASE=