簡體   English   中英

Laravel 工匠遷移多個數據庫

[英]Laravel artisan migrate multiple database

我正在使用 Laravel 遷移功能進行一些測試。

我的配置中有兩個數據庫, mysqlappDb mysql是默認的。 我在遷移目錄中創建了兩個目錄appDbcoreDb 我創建了一個遷移appDbappDb在目錄中,和一個coreDb目錄中mysql數據庫。

現在,要運行coreDb遷移,我只需使用命令

php artisan migrate --path database/migrations/coreDb

輸出:

Migrated: 2017_01_25_195008_initial_core_database

它工作正常,我在coreDb下的遷移中創建的表現在在mysql配置中指定的數據庫中。

現在我想做我在appDb目錄中指定的更改,但只在appDb配置中指定的數據庫上進行。

php artisan migrate --database appDb --path database/migrations/appDb

它運行良好:

Migration table created successfully.
Migrated: 2017_01_25_194957_initial_app_database

當我打開appDb配置中指定的數據庫時,它向我顯示了遷移表,並顯示它運行了2017_01_25_194957_initial_app_database遷移。 但是我在2017_01_25_194957_initial_app_database遷移中創建的表已經在另一個數據庫中結束了,該數據庫在其遷移表中沒有此遷移的記錄。

似乎它使用了--database之后指定的數據庫來存儲有關遷移的信息,而不是實際執行遷移?

其他人有這方面的經驗嗎? 關於如何調試這個的想法?

我也嘗試這樣做:

Schema::connection($this->getConnection())->dropIfExists('testAppDb');

但是遷移類上的$this->getConnection()返回NULL ,即使我有一個由--database參數指定的數據庫。

您需要在Schema::connection()中命名要連接的實際數據庫,以便為特定數據庫執行遷移:

例子:

Schema::connection('testAppDb')->dropIfExists('testAppDb');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM