初めてのLaravel 5.1 : (6) データベースの環境設定

Laravel で データベースの設定を行います。

関連ファイル

  • .env
  • config/database.php


.env

.env は開発環境やステージング環境、本番環境などで、環境毎に変更したい情報をまとめておくファイルです。

DB_HOST=localhost
DB_DATABASE=mydatabase
DB_USERNAME=developer
DB_PASSWORD=secret

KEY=VALUE 形式で記述して、VALUEを環境に応じて変更します。
gitを使っている場合は、.envを .gitignoreファイルに追加して、管理対象から外します。

.gitignore

/vendor
/node_modules
.env

config/database.php

config/database.php はデータベースに関する設定を行うファイルです。

<?php

return [
    // ....

    'default' => env('DB_CONNECTION', 'mysql'),

    'connections' => [
        'sqlite' => [
            'driver'   => 'sqlite',
            'database' => storage_path('database.sqlite'),
            'prefix'   => '',
        ],

        'mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'database'  => env('DB_DATABASE', 'forge'),
            'username'  => env('DB_USERNAME', 'forge'),
            'password'  => env('DB_PASSWORD', ''),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],

        // ....
    ];
];

connections 配列でデータベース種類に応じて必要となる接続情報を定義します。Laravel では SQLite, MySQL, PostgreSQL, SQL Serverに対応しています。

mysql の接続情報の定義箇所に env(‘DB_HOST’, ‘localhost’) とあります。これが .env ファイルを参照している箇所です。第1引数で .env ファイル内に定義してあるKEY指定し、そのVALUE値を取得します。第2引数はデフォルト値で、.envファイルが無かったり、KEYが設定されていない時はデフォルト値を使います。

‘default’ => env(‘DB_CONNECTION’, ‘mysql’), とある箇所で Laravel で使用するデータベースを指定します。

.envファイル内で、DB_CONNECTION=sqlite とした場合は、database.sqliteファイルを手動で作成する必要があります。

$ touch storage/database.sqlite

DB接続確認

artisan migrate コマンドを使って、デフォルトで用意されているユーザーテーブルを作成します。

$ php artisan migrate

artisan tinker コマンドを実行して確認します。

$ php artisan tinker
Psy Shell v0.3.4 (PHP 5.6.2 — cli) by Justin Hilema
>>>

Userを検索してみます。

>>> App\User::all()->toArray();
=> []
>>>

エラー無く、問い合わせが完了しました。
上記の例はユーザが1件もない例ですが、DBへの問い合わせは上手く行っています。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中