Laravelのデータベースを動的に切り替える方法




あまり頻繁に使うことはないかもしれませんが、Laravelでデータベースを動的に切り替える方法を調べたのでまとめておきます。

方法1:envヘルパー関数を利用して環境変数を動的に変更

envヘルパー関数を利用して任意のタイミングでデータベースを切り替えます。

env('DB_CONNECTION', 'データベース識別子');
※データベース識別子はconfig/database.phpで設定した任意の識別子

方法2:DBファサードでデータベースを指定

DBファサード利用時に明示的にデータベースを指定します。

DB::connection('データベース識別子')->任意の処理;

方法3:モデル単位でデータベースを指定

モデルの$connectionプロパティでデータベースを指定します。

protected $connection = 'connection-name';

まとめ

複数のデータベースを切り替える場合、上記3つの方法のどれかを利用すればだいたい対応できるかなと思います。