Laravelで複数のデータベースを使う方法

はじめに:

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で複数のデータベースを使用することは、設定やモデルの調整を行うだけで簡単に実現できます。この機能を活用して、より複雑なデータ処理や複数のデータソースとの連携をスムーズに行うことができます。

参考

How use multiple database in laravel

タイトルとURLをコピーしました