質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

2945閲覧

laravelにてdatabase.sqliteが存在しない(does not exist)と表示される

HarukaNishiyama

総合スコア28

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

3クリップ

投稿2019/04/11 09:31

Laravelにて、SQLiteで作ったpeopleテーブルをwebで表示しようとしましたが、database.sqliteファイルが存在しないと表示されてしまいます。
database/database.sqliteはあるはずなのですが・・・

詳細

エラー内容

"Database (database.sqlite) does not exist. (SQL: PRAGMA foreign_keys = ON;)"
Illuminate \ Database \ QueryException Database (database.sqlite) does not exist. (SQL: select * from people) Previous exceptions Database (database.sqlite) does not exist. (0)

.envファイル
※xamppフォルダに入っていますがxamppは起動していません

DB_CONNECTION=sqlite DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=C:\xampp\htdocs\laravelapp\database\database.sqlite DB_USERNAME=homestead DB_PASSWORD=secret

database.phpファイル

PHP

1 2一部省略 3 4'default' => env('DB_CONNECTION', 'sqlite'), 5 6中略 7 8 'connections' => [ 9 10 'sqlite' => [ 11 'driver' => 'sqlite', 12 'database' => env('DB_DATABASE', database_path('database.sqlite')), 13 'prefix' => '', 14 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), 15 ], 16

ご教示いただければと思います・・・

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

示されたエラーメッセージは\Illuminate\Database\Connectors\SQLiteConnectorクラスのconnectメソッドの以下の部分で作られています。

php

1 $path = realpath($config['database']); 2 3 // Here we'll verify that the SQLite database exists before going any further 4 // as the developer probably wants to know if the database exists and this 5 // SQLite driver will not throw any exception if it does not by default. 6 if ($path === false) { 7 throw new InvalidArgumentException("Database ({$config['database']}) does not exist."); 8 } 9

InvalidArgumentExceptionのところを見るとわかるとおり、エラーメッセージには$config['database']の値がそのままカッコ内に埋め込まれます。示されたエラーメッセージによればその値はdatabase.sqliteであるということになります。

そして$config['database']には設定の以下の部分に対応した値が入っています。

php

1'database' => env('DB_DATABASE', database_path('database.sqlite')),

しかし示された.envファイルによれば

DB_DATABASE=C:\xampp\htdocs\laravelapp\database\database.sqlite

と書いてあると言うことなので、値が食い違っています。DB_DATABASEに値が設定されているのだから、本来は$config['database']にその値がそのまま入って、エラーメッセージはDatabase (C:\xampp\htdocs\laravelapp\database\database.sqlite) does not exist.となっているはずなのです。

このようなときよくある原因としては以下が考えられます。

  • 本当に使われている.envファイルとは別の.envファイルをいじっている
  • 設定キャッシュが作成されているので.envファイルが無視されている(マニュアルの「設定」の「設定キャッシュ」参照)

前者は確認していただくしかないですが、後者だとすると設定キャッシュのクリア(php artisan config:clear)を行えば解決します。

投稿2019/04/11 23:21

crhg

総合スコア1175

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HarukaNishiyama

2019/04/12 00:59

解説が丁寧でわかりやすかったです!本当にありがとうございます。
guest

0

ベストアンサー

DB_DATABASEをコメントにすれば

#DB_DATABASE=

database.php側では
database_path('database.sqlite')=database/database.sqliteが使われるのでこれでいい。

投稿2019/04/11 10:21

kawax

総合スコア10377

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HarukaNishiyama

2019/04/12 01:00

コメントアウトしたらいけました ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問