2017-11-21 3 views
0

私のプロジェクトはマルチデータベースプロジェクトです。一部の移行ファイルはすべてのデータベースで実行する必要があり、一部は1つまたは2つのデータベースで実行する必要があります。私の質問について:接続名を調べる方法は? Laravel:接続の場合はマイグレーション

だから私の移行ファイルが

<?php 

use Illuminate\Support\Facades\Schema; 
use Illuminate\Database\Migrations\Migration; 

class MigrationFile extends Migration { 

    /** 
    * Run the migrations. 
    * 
    * @return void 
    */ 
    public function up(){ 

     if($database == 'myseconddatabase') { 

      //code 

     } 
    } 

    /** 
    * Reverse the migrations. 
    * 
    * @return void 
    */ 
    public function down(){ 
     Schema::dropIfExists('users'); 
    } 
} 

のようなもので、私は、コマンドを与える場合

どう$database変数に値「myfirstdatabase」を与えるためにphp artisan migrate --database=myfirstdatabase?接続は設定に/ database.phpで

はあなたが行うつもり何でも、あなたがDB ::接続を使用して、それを扱うことができている

+0

保護された$ database = 'myseconddatabase'を使用します。 up()関数の前。 – PedroFaria99

+0

@ PedroFaria99ありがとうございました。そして 'protected $ database = ['myseconddatabase'、 'mythirddatabase']'は2つの接続に対して実行したい場合に有効です。 – Feralheart

+0

私は確信していませんが、私はいつでもデータベース接続が必要なので、配列キーを指定する必要があります。 – PedroFaria99

答えて

0

、 getオプションは、それを証明しています。

$pvArray = DB::connection('myconn_mysql')->table('products')->select('id')->get(); 
+0

ありがとうございます、私は知っていますが、 'php artisan migrate --database = xy'コマンドを実行すると、マイグレーションファイルからどのようにxyに到達できますか? – Feralheart

関連する問題