4

複数のデータベース接続を使用してインターネットを検索していて、最初にdatabase.phpで接続を作成してから、必要に応じて切り替えることができるソリューションが見つかりました。今問題は、私は実行時にデータベース名について知りません。私は、ユーザーのログインをさせるためのプライマリ・データベースを持っているし、データベースは、ユーザーのログに基づいて切り替えるためにどのデータベースを決定しますLaravelでさまざまな接続を動的に作成

私がしようとしているもの:。

Config::set('database.connections.mysql.database', Config::get('database.connections.mysql.database') . '_business_' . $preUser->business_id); 

をこれは私が先にやったことで、私のコードローカル環境で作業していましたが、私の開発環境に切り替えたときに動作を停止しました。

任意のアイデアなぜ

私は取得しています他の問題は、私はこの同じシナリオで移行し、播種を実行したいです。私は配列内に一連のデータベースを持ち、それぞれのデータベースでマイグレーションを実行する必要があります。

私もこのソリューションを試しましたが、何とかしていません。私はあなたのトピックの質問について

Laravel: connect to databases dynamically

+0

マイグレーションの部分は、あなたのConfig :: set部分が、職人が行っているように呼び出されていない可能性が高いです。職人を拡張したり、コードを使って移行を実行することができます。 > Artisan :: call( 'migrate'、['--path' => '../plugins/'.$tag.'/migrations'、 '--force' => true]); ' –

答えて

0

それを設定した後、私のデータベース接続を取得しようとすると、それはnullを示して - それは構成の新しい一時的なデータベース接続を作成し、新しいデータベースに接続するためにそれを使用して行うことができます。

Config::set("database.connections.$database", $newDBConnectionParams); 
$this->connection = DB::connection($database); 

このアプローチは、ローカル環境で作業してコードにしたよう

hereに記載されているが、働いていませんon dev - これは設定キャッシュのためだと思われます。既存の設定エントリを更新しようとすると、エントリ値がキャッシュから取得されるため、更新されません。 config cacheはローカルとdev環境で異なる設定になっているようです。

関連する問題