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

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

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

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

2337閲覧

HomesteadでSQLiteを使うには

T.FUJII

総合スコア21

SQLite

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

1クリップ

投稿2018/05/11 02:37

編集2018/05/11 03:25

###前提・実現したいこと

HomesteadでSQLiteを使いたいです。

.env

DB_CONNECTION=sqlite DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=database/database.sqlite DB_USERNAME=homestead DB_PASSWORD=secret

config/database.php

'default' => env('DB_CONNECTION', 'sqlite'), 'connections' => [ 'sqlite' => [ 'driver' => 'sqlite', 'database' => env('DB_DATABASE', database_path('database.sqlite')), 'prefix' => '', ], (略)

下記のエラーを解消するにはどうしたらいいでしょうか。

全体の流れ

HomesteadでSQLiteを使いたいので、touchコマンドでdatabase/database.sqliteとSQLiteファイルを作成しました。その後php artisan migrateでマイグレーションをかけようとするとエラーが発生します。

###発生している問題・エラーメッセージ

下記のエラーが発生しました

Illuminate\Database\QueryException : could not find driver (SQL: select * from sqlite_master where type = 'table' and name = migrations) at C:\Users\admin80\LaravelProjects\marutora\vendor\laravel\framework\src\Illuminate\Database\Connection.php:664 660| // If an exception occurs when attempting to run a query, we'll format the error 661| // message to include the bindings with SQL, which will make this exception a 662| // lot more helpful to the developer instead of just the database's errors. 663| catch (Exception $e) { > 664| throw new QueryException( 665| $query, $this->prepareBindings($bindings), $e 666| ); 667| } 668| Exception trace: 1 PDOException::("could not find driver") C:\Users\admin80\LaravelProjects\marutora\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:68 2 PDO::__construct("sqlite:C:\Users\admin80\LaravelProjects\marutora\database\database.sqlite", []) C:\Users\admin80\LaravelProjects\marutora\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:68 Please use the argument -v to see more details.

###該当のソースコード

php artisan tinnkerでphpinfo();を実行して確認したところ、
PDO driversが空っぽになっています。

(略) PDO PDO support => enabled PDO drivers => (略)

###補足情報(言語/FW/ツール等のバージョンなど)

開発環境:Vagrant + VirtualBox / Homestead
本番環境:CentOS7 nginx MySQL PHP7.2
言語:PHP 7.2.3 (cli)(NTS)
フレームワーク:Laravel5.5 (LTS)
サーバー:nginx
DB:MySQL

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

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

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

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

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

guest

回答1

0

ベストアンサー

投稿2018/05/11 03:13

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

T.FUJII

2018/05/11 03:20

ご回答ありがとうございます。.envを真似してみましたが。PDOException::("could not find driver")と相変わらず同じエラーが出てしまいます。
退会済みユーザー

退会済みユーザー

2018/05/11 03:31

php自体にSQLiteのドライバーが有効になってないのではないかと。
T.FUJII

2018/05/11 03:35

m6u様 > 気が付きました。ローカルの方(git bash)でphp artisan migrateしていました。仮想環境側(RLogin)で実行したら、マイグレーションすることができました。
Lulucom

2018/05/11 05:12

m6uさんの書かれている通り、設定は.envファイルで以下の2行をsqlite用にセットすればいけますよ。 DB_CONNECTION=sqlite DB_DATABASE=/absolute/path/to/database.sqlite config.phpはとくに変更しなくてもLaravelプロジェクト作成時のままで大丈夫です。 あと、DB_DATABASEの値は、ドキュメント通り絶対パスにしましょう。 相対パスでも今は動いてると思いますが、確か、APP_ENV=testing のときなどにうまく動かなかった気がします。
T.FUJII

2018/05/11 05:39

Lulucom様 > /absolute/pathについて調べたのですが、日本語だと絶対パスですか!なるほどです。APP_ENV=localですがtestingを使うときは気を付けます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問