Laravel で複数のDBを使う方法
今日は軽い Tips を。
アプリケーションを作成していると、複数の DB を参照する機会もあると思います。Laravel でももちろん、サポートされています。
接続定義
app/config/database.php
<?php 'default' => 'sqlite', 'connections' => array( // デフォルト 'sqlite' => array( 'driver' => 'sqlite', 'database' => __DIR__.'/../database/production.sqlite', 'prefix' => '', ), // もうひとつ 'sqlite2' => array( 'driver' => 'sqlite', 'database' => __DIR__.'/../database/develop.sqlite', 'prefix' => '', ), )
マイグレーションのインストール
$ php artisan migrate:install --database=sqlite2
--database
オプションを付けるのがポイントです。php artisan migrate
も一緒です。
スキーマ
<?php Schema::connection('sqlite2')->create('users', function($table) { $table->increments('id'): });
コネクションメソッドを呼びます。
クエリービルダー
<?php $users = DB::connection('sqlite2')->select(...);
これも同じく
Eloquent
<?php class User extends Eloquent { protected $connection = 'sqlite2'; }
コネクションフィールドを定義します。
*1:一度言ってみたかった