【Laravel】データベースにSQLiteを使いたい人向け

もくじ

環境

設定

手順1. ファイル作成

$ touch database/database.sqlite

ファイル名は任意。 database/test.dbとかでもOK。

手順2. .env

.envファイルのデータベース設定を確認します。

  • 変更前
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

上記のプロパティがあれば下記に集約、なければ下記を追加します。

  • 変更後
DB_CONNECTION=sqlite

もし手順1のとき、dbファイル名を任意につけているなら下記にする。

DB_CONNECTION=sqlite
DB_DATABASE={絶対パス/test.db}

手順3. config確認

DB_DATABASEが設定されていることを確認。

'connections' => [

    'sqlite' => [
        'driver' => 'sqlite',
        'database' => env('DB_DATABASE', database_path('database.sqlite')),
        'prefix' => '',
        'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
    ],

設定は完了! とっても簡単ですね。

コントローラーで呼び出す

コード

DBファザードを呼び出して、sqlコマンドを書けば問題なく使えます。

仮にsqliteファイルにあるuserテーブルのすべてのレコードを取得したい場合は以下のように書きます。

use Illuminate\Support\Facades\DB;

public function test()
{
    $list = DB::select('select * from user');
}

不要な箇所は割愛してます。

あとは好きなように加工したり、sql文をいじったりしてください。

参考URL

9.x データベース:準備 Laravel

LaravelでSQLiteデータベースを使ってみよう | アールエフェクト