はじめに:
Laravelは非常に柔軟なフレームワークで、複数のデータベースを使用することが可能です。例として、PostgreSQLとMySQLの両方を1つのプロジェクトで使いたいとしましょう。本記事では、その実現方法について説明します。
データベースの設定:
まず、Laravelのデータベース設定を行います。config.php
に以下のように2つ目のデータベース接続を追加します。
'connections' => [
'second_db' => [
'driver' => 'mysql',
'host' => env('SECOND_DB_HOST', '127.0.0.1'),
'port' => env('SECOND_DB_PORT', '3306'),
'database' => env('SECOND_DB_DATABASE', 'forge'),
'username' => env('SECOND_DB_USERNAME', 'forge'),
'password' => env('SECOND_DB_PASSWORD', ''),
],
]
そして、.envファイルに新しい接続のための環境変数を設定します。
SECOND_DB_HOST=127.0.0.1
SECOND_DB_PORT=3306
SECOND_DB_DATABASE=DEMO
SECOND_DB_USERNAME=root
SECOND_DB_PASSWORD=******
コントローラーでの使用:
次に、この新しいデータベース接続をコントローラーで使用します。DB::connection()
メソッドを使用して、特定のデータベース接続を指定することができます。
$users = DB::connection('second_db')->table('users')->get();
さらに、特定のモデルを特定のデータベース接続に関連付けたい場合、モデルクラス内で$connection
プロパティを定義します。
class DemoModel extends Model
{
protected $connection = 'second_db';
}
さいごに:
Laravelで複数のデータベースを使用することは、設定やモデルの調整を行うだけで簡単に実現できます。この機能を活用して、より複雑なデータ処理や複数のデータソースとの連携をスムーズに行うことができます。