用過 migrate:refresh
命令的人就知道,它不僅會回滾資料庫的所有遷移,還會接著執行 migrate
命令。這對程式早期開發過程中對重建資料庫有需求的人能起到很大的幫助。
Laravel 5.5 對此作了改進,建立了一個新的命令:migrate:fresh
。 refresh 和 fresh 之間的區別在於,fresh 是跳過了所有的 down() 方法或者回滾,直接刪除了所有的表,再執行 up() 方法重建資料庫。
直接通過兩者的命令執行結果,區別便清晰可見:
$ php artisan migrate:refresh
Rolling back: 2014_10_12_100000_create_password_resets_table
Rolled back: 2014_10_12_100000_create_password_resets_table
Rolling back: 2014_10_12_000000_create_users_table
Rolled back: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table
現在,用 fresh 命令:
$ php artisan migrate:fresh
Dropped all tables successfully.
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table
當然比起跟新命令作對比,refresh 在最新的 5.4.17 版本中還是很有用的。因為這個版本中 遷移 up() 和 down() 是可選的。 你把 down() 去掉也還是可以快速重置本地資料庫的。
新的遷移命令 migrate:fresh
將和計劃於今年 7 月或 8 月釋出的 Laravel 5.5 。
更新:當然如果你現在就想利用這條新命令,請檢視 Spatie 的這個 包。
更多資訊可前往 Laravel China 資訊站 檢視~
本作品採用《CC 協議》,轉載必須註明作者和本文連結