2017-05-05 51 views
0

我已遵循laravel遷移步驟及其良好。我的問題是關於修改列。我已經在composer中安裝了doctrine \ dbal。但是當我用change方法更改列$table->string('name')->nullable()->change(),然後運行php artisan migrate。沒有說什麼遷移。爲什麼?我是否需要在遷移表類中使用像這樣的use Doctine\dbal doctrin \ dbal?或者有什麼更好的方式來實現在遷移中修改表列,我應該運行什麼工匠?請任何幫助!Laravel 5. *修改列與遷移

+0

您是否製作了新的遷移更改的字段?如果不是,那麼您必須創建一個新的遷移,因爲您已更改的遷移已被註冊爲已完成,因此不會再次運行。 –

+0

那麼意思是,即使我改變了什麼,舊的遷移也沒有效果? – icefrog

+0

不,舊遷移已經運行,所以不會再運行。您需要創建一個新的遷移文件來更改現有的表,或者,您可以使用命令「php artisan migrate:refresh」重新運行所有遷移。 –

回答

0

租賃遷移只會運行一次,意味着一旦運行,一旦php artisan migrate運行後,它將不會再次運行。通過查看數據庫中的遷移表,您可以看到應用程序中運行的所有遷移。

如果您編輯遷移文件並需要重新運行所有遷移,則可以使用以下命令php artisan migrate:refresh。這將回滾所有遷移並重新運行它們,並且還會在遷移表上增加批處理編號。

如果您需要編輯其中一個表格,但不需要重新運行所有遷移,則應該創建新的遷移並編輯該特定遷移中存在問題的表格。一旦migrate命令再次運行,只有您的新遷移將被執行。

您可以在下面的鏈接,所有這些信息https://laravel.com/docs/5.4/migrations