iT邦幫忙

第 11 屆 iThome 鐵人賽

1
Software Development

在後花園遇見LP,Laravel及PHP的甜蜜糾纏,火熱上映系列 第 32

# ✾後花園D32✾- 教你如何滾回去 (Migration 的 Rollback)

本系列文的環境狀態,可點擊此連結後花園環境參考

昨天 2019/10/16 寫的那篇,不要輕易 Rollback ,那個 function down() 會刪了你的 table ,今天 2019/10/17 已更新此篇 ✾後花園D31✾- Laravel 舊表格新增欄位(列名)錯誤。

可以拿上一篇新增列名的 Migration 試做此功能。

關於 Rollback

最簡單的方式,就當作它會去執行上一個動作的 function down() 內的程式,應該會比較好理解,所以它跟 function up() 做的事就會是相反的。

對照起來像這樣:

function up function down
新增欄位 刪除欄位
變更新名 變回舊名
刪除欄位 重做舊列名(新增列名)

指令介紹

查看 migrate 做過的事,有點像 log 功能

$ php artisan migrate:status

接着 Rollback 前,請務必看好你的 down() 寫了什麼鬼

確定前一個版本 migration 的 down 會執行你想做的事嗎?
滾回前一個地方去~~~
這行指令請小心,即將會根據你寫的 down 做回應。

$ php artisan migrate:rollback

Terminal 的狀況
先查看目前狀態

Laravel 程式碼內的狀況

MySQL 的狀況
新增列名的 Migration ,如果 Rollback ,就是移除列名囉!

然後 Rollback 完,如果覺得自己錯了,又想新增回列名,只要再輸入:

$ php artisan migrate

就會再次執行被 Rollback 的 Migration 的 function up() ,但裡面內容就沒有了。

參考連結:
❁ Laravel 官方 - Database: Migrations


上一篇
✾後花園D31✾- Laravel 舊表格新增欄位(列名)
下一篇
✾後花園D33✾- Migration 列名(欄名) 新增、修改、刪除
系列文
在後花園遇見LP,Laravel及PHP的甜蜜糾纏,火熱上映49
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言