Laravel 學習之資料庫遷移

阿週日記發表於2019-06-25

1.資料庫遷移詳解
遷移就像是資料庫的版本控制,允許團隊簡單輕鬆的編輯並共享應用的資料庫表結構,遷移通常和 Laravel 的資料庫結構生成器配合使用,讓你輕鬆地構建資料庫結構。如果你曾經試過讓同事手動在資料庫結構中新增欄位,那麼資料庫遷移可以讓你不再需要做這樣的事情(來自於手冊文件資料庫遷移簡介)
2.操作
2.1執行遷移
1)通用是使用artisan命令來進行遷移操作,laravel預設有兩個遷移檔案一個users一個passwordResets表。
//根據遷移檔案在資料庫內生成資料表
命令列:php artisan migrate
執行後你就會發現你連線的資料庫中多了3個表,一個是users表(這裡我用的是customers,直接複製的 Users遷移檔案),一個password_resets表,還有一個migrates表。這裡友情提示,不建議直接用user 當使用者表,user的定義太大了,我們一般用客戶,當然按照你們實際情況決定,偏要用user當使用者表也 不反對。
2)表結構

customers表結構

migrations表結構

password_resets表結構
3)遷移檔案所在目錄,裡邊具體內容自己看吧。

2.2生成遷移
1)命令列操作:php artisan make:migration create_customerInformation_table

2)效果:生成一個客戶資訊表customer_information遷移檔案,這時候你會發現在database/migrations檔案下生成了一個2019_06_06_130424_create_customer_information_table.php檔案。

3)方法:你看到了一個up方法和一個down方法,up 方法用於新增新的資料表, 欄位或者索引到資料庫, 而 down 方法就是 up 方法的反操作,和 up 裡的操作相反。一個建立一個刪除。

4)欄位新增:客戶資訊表,儲存客戶資訊的,就相當於網頁的個人中心,這裡簡單舉例就簡單幾個欄位屬性, 主鍵id,customer_id,性別sex,暱稱nick_name,地址address,具體請看圖片裡的註釋

5)寫完後,執行遷移,命令列:php artisan migrate,這時候資料庫裡就有了新的客戶資訊表,看圖片哦。

客戶資訊表結構

2.3回滾遷移

1)想要回滾最新的一次遷移”操作“,可以使用 rollback 命令,這將會回滾最後一批執行的遷移,可能包含多個遷移檔案:

命令列操作:php artisan migrate:rollback

2)你也可以通過 rollback 命令上提供的 step 選項來回滾指定數目的遷移,例如,下面的命令將會回滾最後3條遷移:

命令列操作:php artisan migrate:rollback --step=3

3)migrate:reset 命令將會回滾所有的應用遷移:

命令列操作:php artisan migrate:reset

4)在單個命令中回滾 & 遷移,migrate:refresh 命令將會先回滾所有資料庫遷移,然後執行 migrate 命令。這個命令可以有效的重建整個資料庫:

命令列操作:php artisan migrate:refresh

// 重建資料庫並填充資料

命令列操作:php artisan migrate:refresh --seed

5)你也可以回滾或重建指定數量的遷移 —— 通過 refresh 命令提供的 step 選項。

//回滾3條資料遷移

命令列操作:php artisan migrate:refresh --step=3

6)刪除所有表 & 遷移migrate:fresh 命令將會先從資料庫中刪除所有表然後執行 migrate 命令

命令列操作:php artisan migrate:fresh

剩下的修改欄位之類的就之後寫吧。

周洪亮

相關文章