2015-05-09 190 views
1

我使用php artisan make:migration --table=my_table創建了一個新的遷移,並繼續爲現有表創建一個新列。所述列應該是unique index,但我忘記了它可以爲空,因爲這個原因,php artisan migrate失敗,因爲多行將具有重複條目(這將是空字符串''Laravel 5遷移出錯

到目前爲止,邏輯方法是將nullable添加到列並重新運行遷移。但是由於表中已經存在新列(添加唯一鍵時遷移失敗,但創建列成功),所以我必須先刪除它。

我的第一個想法是運行php artisan migrate:rollback,但它執行了先前的遷移,而不是我剛剛創建的遷移。

到目前爲止,做到這一點的正確方法是什麼?我應該登錄到數據庫cli並手動寫入查詢或laravel提供一種方法來通過php artisan來處理?

+0

是對開發環境或生產環境中的應用 –

+0

它是在發展,但我不希望遷移:一些,因爲刷新點我將不得不遷移到生產,我不能在產品上做到這一點 –

回答

0

我認爲您可以修改表格的原始遷移並添加nullable,但您需要對舊遷移執行此操作。正如您注意到的那樣,新的遷移只會將補丁應用於現有的表。

修改遷移後,您可以再次回滾並轉發。當然,你需要小心你的數據(如果你需要他們檢查Database Seeding

你也可以使用php artisan migrate:refresh這將刪除所有表和數據(所以要小心),但它應該重新創建你的表新的結構

0

試試這個:

php artisan migrate:rollback --table=table_name_here