我試圖用Laravel編寫遷移文件時將我的表分成不同的模式。如何在laravel遷移文件中使用許多數據庫模式?
我想知道做什麼是最好的方法。目前,該表的創建是這樣:
Schema::create('schema_name.table_name', function (Blueprint $table) {
$table->increments('id');
(...)
});
我應該嘗試使用不同的連接,另一個選項,或它的確定也是這樣嗎?
我試圖用Laravel編寫遷移文件時將我的表分成不同的模式。如何在laravel遷移文件中使用許多數據庫模式?
我想知道做什麼是最好的方法。目前,該表的創建是這樣:
Schema::create('schema_name.table_name', function (Blueprint $table) {
$table->increments('id');
(...)
});
我應該嘗試使用不同的連接,另一個選項,或它的確定也是這樣嗎?
試試這個
首先在的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');
(...)
});
我添加了與其他架構集的連接。在由laravel遷移擴展的Migration類中,有一個$ connection屬性。 如果我在那裏設置連接,它似乎不會改變任何事情。你知道它是如何工作的嗎? –
在這個答案我添加了'mysql1'新連接,然後我改變了連接遷移如上,然後只需運行'php artisan migrate'它會遷移。然後在'Model'中添加'protected $ connection ='mysql1''並像以前一樣使用模型。 –
我希望有更好的辦法...無論如何,我認爲這是正確的答案 –
你不張貼問題之前,首先谷歌呢? – User97798
是的,我做到了。我真的知道該怎麼做。但我不喜歡這種方法。 除了谷歌搜索之外,你還有什麼貢獻嗎? –