2017-03-09 74 views

回答

2

我認爲遷移被設計爲按順序運行,因爲每個人都可以依賴於更早的遷移。

例如,遷移#1可以創建表並且遷移#2可以向該表添加一些額外的字段。如果您嘗試運行#2遷移而沒有運行#1,則會失敗。

運行artisan migrate時,它將只運行尚未應用的遷移,除非您使用migrate:refresh,在這種情況下,它將重置並重新運行所有遷移。

如果你是死心塌地只運行一個遷移 - 你可以暫時刪除您不想跑從目錄中的所有遷移,並運行遷移命令。然後將其餘的移回去。這是一個怪異的解決方法,但它會做到這一點。

還有一個替代方案,我認爲甚至可能最適合您:

php artisan migrate --path=/database/migrations/selected/ 

您要遷移的是/選擇/目錄(你需要創建)內。

0

您可以創建一個新的遷移,這將增加新列,即:

Schema::table('users', function (Blueprint $table) { $table->string('additional_field'); });

和運行php artisan migrate

這將與新列更新表格,而不是與其他表干擾。