2017-09-20 26 views
1

我試圖用Laravel編寫遷移文件時將我的表分成不同的模式。如何在laravel遷移文件中使用許多數據庫模式?

我想知道做什麼是最好的方法。目前,該表的創建是這樣:

Schema::create('schema_name.table_name', function (Blueprint $table) { 
     $table->increments('id'); 
     (...) 
    }); 

我應該嘗試使用不同的連接,另一個選項,或它的確定也是這樣嗎?

+0

你不張貼問題之前,首先谷歌呢? – User97798

+0

是的,我做到了。我真的知道該怎麼做。但我不喜歡這種方法。 除了谷歌搜索之外,你還有什麼貢獻嗎? –

回答

3

試試這個

首先在的config/database.php中添加其他連接

'connections' => [ 
    'mysql' => [...], 

    'mysql1' => [ 
      'driver' => 'mysql', 
      'host' => env('DB_HOST', 'localhost'), 
      'port' => env('DB_PORT', '3306'), 
      'database' => env('DB_DATABASE_NAME', 'forge'), 
      'username' => env('DB_USERNAME', 'forge'), 
      'password' => env('DB_PASSWORD', ''), 
      'charset' => 'utf8', 
      'collation' => 'utf8_unicode_ci', 
      'prefix' => '', 
      'strict' => false, 
      'engine' => null, 
     ], 

     ... 
] 

然後在遷移

Schema::connection('mysql1')->create('table_name', function (Blueprint $table) { 
    $table->increments('id'); 
    (...) 
}); 
+0

我添加了與其他架構集的連接。在由laravel遷移擴展的Migration類中,有一個$ connection屬性。 如果我在那裏設置連接,它似乎不會改變任何事情。你知道它是如何工作的嗎? –

+0

在這個答案我添加了'mysql1'新連接,然後我改變了連接遷移如上,然後只需運行'php artisan migrate'它會遷移。然後在'Model'中添加'protected $ connection ='mysql1''並像以前一樣使用模型。 –

+0

我希望有更好的辦法...無論如何,我認爲這是正確的答案 –

相關問題