[英]Laravel artisan migrate multiple database
我正在使用 Laravel 遷移功能進行一些測試。
我的配置中有兩個數據庫, mysql
和appDb
。 mysql
是默認的。 我在遷移目錄中創建了兩個目錄appDb
和coreDb
。 我創建了一個遷移appDb
在appDb
在目錄中,和一個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.