SlideShare a Scribd company logo
1 of 34
Download to read offline
Laravel 工作坊
Schema/Migration 操作
shengyou @ 彰師大資工系學會 (2014.12.07)
階段任務
• 學習常用 artisan 指令
• 學習建立 migration
• 學習使用 Schema Builder 建立資料庫結構
• 透過 artisan 指令執行資料庫結構的變更
Artisan 指令
什麼是 artisan?
• Laravel 專屬的指令列工具,協助我們完成
日常繁瑣工作事務,如:
- 產生 migration、dump auto-load
- 清快取、最佳化、控制 queue
- 互動模式、維護模式
為什麼要用 artisan?
• 簡化工作流程,如:
- 自動幫忙產生想要的物件鷹架,可以少
打一些程式碼
- 自動最佳化 Laravel、啟動常用的工具
• 簡單來說,就是因為 懶 我們是高效率的
攻城獅
如何使用 artisan?
• $ php artisan {指令名稱}
• 工作坊截至目前為主,已經使用過的有:
- env
- migrate:install
• 在接下來的各單元內,將依不同主題介紹
更多 artisan 指令
artisan env
• 測試 Laravel 目前所在環境
- artisan 會回傳目前 Laravel 目前的環境變
數設定
• 範例:
$	
  php	
  artisan	
  env
artisan migrate:install
• 產生 migrations 資料表
- artisan 會使用目前的環境設定連線至資
料庫,並安裝一個名為 migrations 的資
料表
• 範例:
$	
  php	
  artisan	
  migrate:install
artisan key:generate
• 產生 App 加密金鑰
- 若使用 composer 建立專案的話,則會
自動執行 個指令
• 範例:
$	
  php	
  artisan	
  key:generate
Application	
  key	
  [xxxxxxxxxxxxxxxxxx]	
  set	
  successfully
artisan dump-autoload
• 掃描現有專案目錄,建立 class map
- artisan 會掃描現有的專案目前資料夾,
並把所有類別及 名做成一個 class map
對照表。(若有手動新增 案時,記得執
行此指令)
• 範例:
$	
  php	
  artisan	
  dump-­‐autoload
建立 Migration
什麼是 Migration?
• 所有對 DB 操作的動作,都 寫對應的程
式碼,透過執行程式來操作資料庫變更
• 每個人拿到更新版本後,透過執行
migrate 就可以有相同的 DB 結構,若有問
題也可以 rollback 回之前的狀態
• 可以把它當成資料庫的版本控制系統
為什麼要用 Migration?
• 多人開發時,因為新功能而需要修改 DB
結構,若沒有 Migration 則其他人就無法
知道 DB 的差異; 署時,DB 的修改沒
有紀錄、若有狀況也無從回復
DB 規劃
怎麼做 Migration?
• 先用 artisan 產生 migration
• 使用 Laravel Schema Builder 類別 寫
migration 的內容
• 使用 artisan 執行 migrate
• 可從 phpMyAdmin 裡確認執行後的結果
產生 migrate
使用 artisan migrate:make 產生 migrate
artisan migrate:make
• 產生 migration
- artisan 原生指令,依照給予的 migration
名稱,產生 migration ,並執行 dump-
autoload
• 範例:
$	
  php	
  artisan	
  migrate:make	
  create_posts_table
產生 migrate
使用 artisan generate:migrations 產生 migrate
artisan generate:migration
• 產生 migration
- generator 版的產生 migration 指令,優
點在於透過 migration 名的保留字,預
先產生 Schema Builder 語法
• 範例:
$	
  php	
  artisan	
  generate:migration	
  create_posts_table
Migration 案結構
• 分成 up / down (前進/後退)
- up 寫要做變更的內容 (新增、刪除、
重新命名)
- down 是寫如何將 up 的內容做還原 (刪
除、新增、重新命名)
★ 參考:http://laravel.tw/docs/migrations
Schema Builder 語法
在 migrate 裡 寫 up/down 內容
Schema Builder 語法
• 建立資料表
• 重新命名資料表
• 刪除資料表
Schema::create('users',	
  function($table)
{
	
  	
  	
  	
  $table-­‐>increments('id');
});
Schema::rename($from,	
  $to);
Schema::drop('users');
★ 語法參考:http://laravel.tw/docs/4.2/schema#creating-and-dropping-tables
Schema Builder 語法
• 建立欄位
• 重新命名欄位
• 刪除欄位
Schema::table('users',	
  function($table)
{
	
  	
  	
  	
  $table-­‐>string('email');
});
Schema::table('users',	
  function($table)
{
	
  	
  	
  	
  $table-­‐>renameColumn('from',	
  'to');
});
Schema::table('users',	
  function($table)
{
	
  	
  	
  	
  $table-­‐>dropColumn('votes');
});
(要額外安裝	
  doctrine/dbal	
  套件)
★ 語法參考:http://laravel.tw/docs/4.2/schema#adding-columns
Schema Builder 語法
• 增加 index
• after 語法
★ 語法參考:http://laravel.tw/docs/4.2/schema#adding-indexes
$table-­‐>string('email')-­‐>unique();
$table-­‐>string('name')-­‐>after('email');
執行 migrate
透過 artisan 執行 migrate
artisan migrate
• 呼叫 artisan 執行 migrate 動作
- 寫完 migrate 後,要執行此指令才
會正式修改資料庫
- artisan 會自動依照 migrations 資料表的
紀錄進行版本控管
• 範例:
$	
  php	
  artisan	
  migrate
檢查 DB 修改結果
新建的資料表
Laravel 的 migrate 版次紀錄
其他 migrate 指令
• 還原
• 回到最初
• 回到最初後再重 一次
$	
  php	
  artisan	
  migrate:rollback
$	
  php	
  artisan	
  migrate:reset
$	
  php	
  artisan	
  migrate:refresh
小技巧
• 在輸入 migration 名稱時打錯字怎麼辦?
- 先 rollback,重新命名 Class 名稱及 案
名稱,再執行 dump-autoload 及 migrate
指令
- 把產生出來的 案手動刪除掉、資料庫
內資料表 掉,再重新產生一次
小技巧
• 不小心把 migration 資料表弄壞、弄亂無
法復原時怎麼辦?
- 試試 php artisan migrate:reset
- 把所有資料表全部手動刪除,再重新
一次 php artisan migrate 重建所有資料表
存 點
• 試著把現在已經可以運作的程式碼加入版
本控制內
• 流程提醒:
- working directory > staging area > commit
階段檢查表
• 確認產生出 3 個 migration
• 確認 DB 裡目前有 4 個資料表,分別為:
migrations、posts、categories、comments
問與答
學員可開始練習、實作
單元小結
• 在 個單元裡,我們說明如何使用 Laravel
的 Migration 功能為資料庫做版本控制,
並將 Blog 所需要的有個資料表建立完成
• 下一個單元,我們將學習如何使用 Laravel
的 Seeding 功能,協助我們產生資料庫內
的測試資料

More Related Content

What's hot

What's hot (20)

Eloquent ORM
Eloquent ORMEloquent ORM
Eloquent ORM
 
使用 Eloquent ORM
使用 Eloquent ORM使用 Eloquent ORM
使用 Eloquent ORM
 
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
 
整合 Open ID
整合 Open ID整合 Open ID
整合 Open ID
 
使用 Controller
使用 Controller使用 Controller
使用 Controller
 
Model 設定與 Seeding
Model 設定與 SeedingModel 設定與 Seeding
Model 設定與 Seeding
 
CRUD 綜合應用
CRUD 綜合應用CRUD 綜合應用
CRUD 綜合應用
 
驗證與訊息
驗證與訊息驗證與訊息
驗證與訊息
 
Model 設定與 Seeding
Model 設定與 SeedingModel 設定與 Seeding
Model 設定與 Seeding
 
Package 安裝與使用
Package 安裝與使用Package 安裝與使用
Package 安裝與使用
 
Route 路由控制
Route 路由控制Route 路由控制
Route 路由控制
 
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
 
CRUD 綜合運用
CRUD 綜合運用CRUD 綜合運用
CRUD 綜合運用
 
工作坊總結
工作坊總結工作坊總結
工作坊總結
 
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
 
應用程式佈署
應用程式佈署應用程式佈署
應用程式佈署
 
開發環境建置
開發環境建置開發環境建置
開發環境建置
 
Route 機制
Route 機制Route 機制
Route 機制
 
驗證與訊息
驗證與訊息驗證與訊息
驗證與訊息
 
Route路由控制
Route路由控制Route路由控制
Route路由控制
 

Viewers also liked

Viewers also liked (11)

專案啟動與設定
專案啟動與設定專案啟動與設定
專案啟動與設定
 
課程簡介
課程簡介課程簡介
課程簡介
 
開發環境建置
開發環境建置開發環境建置
開發環境建置
 
使用者認證
使用者認證使用者認證
使用者認證
 
啟動 Laravel 與環境設定
啟動 Laravel 與環境設定啟動 Laravel 與環境設定
啟動 Laravel 與環境設定
 
PHP 語法基礎與物件導向
PHP 語法基礎與物件導向PHP 語法基礎與物件導向
PHP 語法基礎與物件導向
 
Package安裝與使用
Package安裝與使用Package安裝與使用
Package安裝與使用
 
工作坊簡介
工作坊簡介工作坊簡介
工作坊簡介
 
應用程式部署
應用程式部署應用程式部署
應用程式部署
 
使用 Controller
使用 Controller使用 Controller
使用 Controller
 
工作坊總結
工作坊總結工作坊總結
工作坊總結
 

Similar to Schema & Migration操作

Rails talk-5
Rails talk-5Rails talk-5
Rails talk-5
Eddie Lee
 
跟我一起學 CakePHP
跟我一起學 CakePHP跟我一起學 CakePHP
跟我一起學 CakePHP
Ray Wei
 
Template mb-kao
Template mb-kaoTemplate mb-kao
Template mb-kao
xwcoder
 
ASP.Net MVC2 简介
ASP.Net MVC2 简介ASP.Net MVC2 简介
ASP.Net MVC2 简介
Allen Lsy
 
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用
hugo
 
Java Build Tool course in 2011
Java Build Tool course in 2011Java Build Tool course in 2011
Java Build Tool course in 2011
Ching Yi Chan
 

Similar to Schema & Migration操作 (18)

使用 laravel 的前與後
使用 laravel 的前與後使用 laravel 的前與後
使用 laravel 的前與後
 
Laravel 5.2 教學
Laravel 5.2 教學Laravel 5.2 教學
Laravel 5.2 教學
 
專案啟動與環境設定
專案啟動與環境設定專案啟動與環境設定
專案啟動與環境設定
 
Rails talk-5
Rails talk-5Rails talk-5
Rails talk-5
 
How to ASP.NET MVC4
How to ASP.NET MVC4How to ASP.NET MVC4
How to ASP.NET MVC4
 
使用者認證
使用者認證使用者認證
使用者認證
 
跟我一起學 CakePHP
跟我一起學 CakePHP跟我一起學 CakePHP
跟我一起學 CakePHP
 
Inside the browser
Inside the browserInside the browser
Inside the browser
 
Php study.20130110
Php study.20130110Php study.20130110
Php study.20130110
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合
 
Uliweb比较与实践 2013
Uliweb比较与实践 2013Uliweb比较与实践 2013
Uliweb比较与实践 2013
 
Template mb-kao
Template mb-kaoTemplate mb-kao
Template mb-kao
 
ASP.Net MVC2 简介
ASP.Net MVC2 简介ASP.Net MVC2 简介
ASP.Net MVC2 简介
 
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用
 
02.web sphere培训 应用websphere
02.web sphere培训 应用websphere02.web sphere培训 应用websphere
02.web sphere培训 应用websphere
 
Java Build Tool course in 2011
Java Build Tool course in 2011Java Build Tool course in 2011
Java Build Tool course in 2011
 
PHP & MySQL 教學
PHP & MySQL 教學PHP & MySQL 教學
PHP & MySQL 教學
 
改善 Angular 開發流程:你所不知道的 Schematics 程式碼產生器
改善 Angular 開發流程:你所不知道的 Schematics 程式碼產生器改善 Angular 開發流程:你所不知道的 Schematics 程式碼產生器
改善 Angular 開發流程:你所不知道的 Schematics 程式碼產生器
 

More from Shengyou Fan

[JCConf 2023] 從 Kotlin Multiplatform 到 Compose Multiplatform:在多平台間輕鬆共用業務邏輯與 U...
[JCConf 2023] 從 Kotlin Multiplatform 到 Compose Multiplatform:在多平台間輕鬆共用業務邏輯與 U...[JCConf 2023] 從 Kotlin Multiplatform 到 Compose Multiplatform:在多平台間輕鬆共用業務邏輯與 U...
[JCConf 2023] 從 Kotlin Multiplatform 到 Compose Multiplatform:在多平台間輕鬆共用業務邏輯與 U...
Shengyou Fan
 

More from Shengyou Fan (20)

[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
 
[JCConf 2023] 從 Kotlin Multiplatform 到 Compose Multiplatform:在多平台間輕鬆共用業務邏輯與 U...
[JCConf 2023] 從 Kotlin Multiplatform 到 Compose Multiplatform:在多平台間輕鬆共用業務邏輯與 U...[JCConf 2023] 從 Kotlin Multiplatform 到 Compose Multiplatform:在多平台間輕鬆共用業務邏輯與 U...
[JCConf 2023] 從 Kotlin Multiplatform 到 Compose Multiplatform:在多平台間輕鬆共用業務邏輯與 U...
 
[Kotlin 讀書會第五梯次] 深入淺出 Kotlin 第一章導讀
[Kotlin 讀書會第五梯次] 深入淺出 Kotlin 第一章導讀[Kotlin 讀書會第五梯次] 深入淺出 Kotlin 第一章導讀
[Kotlin 讀書會第五梯次] 深入淺出 Kotlin 第一章導讀
 
[WebConf Taiwan 2023] 一份 Zend Engine 外帶!透過 Micro 讓一次打包、多處運行變得可能
[WebConf Taiwan 2023] 一份 Zend Engine 外帶!透過 Micro 讓一次打包、多處運行變得可能[WebConf Taiwan 2023] 一份 Zend Engine 外帶!透過 Micro 讓一次打包、多處運行變得可能
[WebConf Taiwan 2023] 一份 Zend Engine 外帶!透過 Micro 讓一次打包、多處運行變得可能
 
How I make a podcast website using serverless technology in 2023
How I make a podcast website using serverless technology in 2023How I make a podcast website using serverless technology in 2023
How I make a podcast website using serverless technology in 2023
 
[Effective Kotlin 讀書會] 第八章 Efficient collection processing 導讀
[Effective Kotlin 讀書會] 第八章 Efficient collection processing 導讀[Effective Kotlin 讀書會] 第八章 Efficient collection processing 導讀
[Effective Kotlin 讀書會] 第八章 Efficient collection processing 導讀
 
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
[MOPCON 2022] 以 Kotlin Multiplatform 制霸全平台
 
[JCConf 2022] Compose for Desktop - 開發桌面軟體的新選擇
[JCConf 2022] Compose for Desktop - 開發桌面軟體的新選擇[JCConf 2022] Compose for Desktop - 開發桌面軟體的新選擇
[JCConf 2022] Compose for Desktop - 開發桌面軟體的新選擇
 
Using the Exposed SQL Framework to Manage Your Database
Using the Exposed SQL Framework to Manage Your DatabaseUsing the Exposed SQL Framework to Manage Your Database
Using the Exposed SQL Framework to Manage Your Database
 
[COSCUP 2022] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具
[COSCUP 2022] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具[COSCUP 2022] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具
[COSCUP 2022] 讓黑畫面再次偉大 - 用 PHP 寫 CLI 工具
 
[COSCUP 2022] Kotlin Collection 遊樂園
[COSCUP 2022] Kotlin Collection 遊樂園[COSCUP 2022] Kotlin Collection 遊樂園
[COSCUP 2022] Kotlin Collection 遊樂園
 
初探 Kotlin Multiplatform
初探 Kotlin Multiplatform初探 Kotlin Multiplatform
初探 Kotlin Multiplatform
 
簡化 JVM 上雲 - 透過 Azure Spring Cloud 提升開發、發佈及服務監控效率
簡化 JVM 上雲 - 透過 Azure Spring Cloud 提升開發、發佈及服務監控效率簡化 JVM 上雲 - 透過 Azure Spring Cloud 提升開發、發佈及服務監控效率
簡化 JVM 上雲 - 透過 Azure Spring Cloud 提升開發、發佈及服務監控效率
 
[PHP 也有 Day #64] PHP 升級指南
[PHP 也有 Day #64] PHP 升級指南[PHP 也有 Day #64] PHP 升級指南
[PHP 也有 Day #64] PHP 升級指南
 
以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用
以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用
以 Kotlin Multiplatform Mobile (KMM) 開發跨平台行動應用
 
Composer 經典食譜
Composer 經典食譜Composer 經典食譜
Composer 經典食譜
 
老派浪漫:用 Kotlin 寫 Command Line 工具
老派浪漫:用 Kotlin 寫 Command Line 工具老派浪漫:用 Kotlin 寫 Command Line 工具
老派浪漫:用 Kotlin 寫 Command Line 工具
 
[Kotlin Serverless 工作坊] 單元 4 - 實作 RSS Aggregator
[Kotlin Serverless 工作坊] 單元 4 - 實作 RSS Aggregator[Kotlin Serverless 工作坊] 單元 4 - 實作 RSS Aggregator
[Kotlin Serverless 工作坊] 單元 4 - 實作 RSS Aggregator
 
[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON API
[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON API[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON API
[Kotlin Serverless 工作坊] 單元 3 - 實作 JSON API
 
[Kotlin Serverless 工作坊] 單元 2 - 簡介 Kotlin Serverless
[Kotlin Serverless 工作坊] 單元 2 - 簡介 Kotlin Serverless[Kotlin Serverless 工作坊] 單元 2 - 簡介 Kotlin Serverless
[Kotlin Serverless 工作坊] 單元 2 - 簡介 Kotlin Serverless
 

Schema & Migration操作

  • 1. Laravel 工作坊 Schema/Migration 操作 shengyou @ 彰師大資工系學會 (2014.12.07)
  • 2. 階段任務 • 學習常用 artisan 指令 • 學習建立 migration • 學習使用 Schema Builder 建立資料庫結構 • 透過 artisan 指令執行資料庫結構的變更
  • 4. 什麼是 artisan? • Laravel 專屬的指令列工具,協助我們完成 日常繁瑣工作事務,如: - 產生 migration、dump auto-load - 清快取、最佳化、控制 queue - 互動模式、維護模式
  • 5. 為什麼要用 artisan? • 簡化工作流程,如: - 自動幫忙產生想要的物件鷹架,可以少 打一些程式碼 - 自動最佳化 Laravel、啟動常用的工具 • 簡單來說,就是因為 懶 我們是高效率的 攻城獅
  • 6. 如何使用 artisan? • $ php artisan {指令名稱} • 工作坊截至目前為主,已經使用過的有: - env - migrate:install • 在接下來的各單元內,將依不同主題介紹 更多 artisan 指令
  • 7. artisan env • 測試 Laravel 目前所在環境 - artisan 會回傳目前 Laravel 目前的環境變 數設定 • 範例: $  php  artisan  env
  • 8. artisan migrate:install • 產生 migrations 資料表 - artisan 會使用目前的環境設定連線至資 料庫,並安裝一個名為 migrations 的資 料表 • 範例: $  php  artisan  migrate:install
  • 9. artisan key:generate • 產生 App 加密金鑰 - 若使用 composer 建立專案的話,則會 自動執行 個指令 • 範例: $  php  artisan  key:generate Application  key  [xxxxxxxxxxxxxxxxxx]  set  successfully
  • 10. artisan dump-autoload • 掃描現有專案目錄,建立 class map - artisan 會掃描現有的專案目前資料夾, 並把所有類別及 名做成一個 class map 對照表。(若有手動新增 案時,記得執 行此指令) • 範例: $  php  artisan  dump-­‐autoload
  • 12. 什麼是 Migration? • 所有對 DB 操作的動作,都 寫對應的程 式碼,透過執行程式來操作資料庫變更 • 每個人拿到更新版本後,透過執行 migrate 就可以有相同的 DB 結構,若有問 題也可以 rollback 回之前的狀態 • 可以把它當成資料庫的版本控制系統
  • 13. 為什麼要用 Migration? • 多人開發時,因為新功能而需要修改 DB 結構,若沒有 Migration 則其他人就無法 知道 DB 的差異; 署時,DB 的修改沒 有紀錄、若有狀況也無從回復
  • 15. 怎麼做 Migration? • 先用 artisan 產生 migration • 使用 Laravel Schema Builder 類別 寫 migration 的內容 • 使用 artisan 執行 migrate • 可從 phpMyAdmin 裡確認執行後的結果
  • 16. 產生 migrate 使用 artisan migrate:make 產生 migrate
  • 17. artisan migrate:make • 產生 migration - artisan 原生指令,依照給予的 migration 名稱,產生 migration ,並執行 dump- autoload • 範例: $  php  artisan  migrate:make  create_posts_table
  • 18. 產生 migrate 使用 artisan generate:migrations 產生 migrate
  • 19. artisan generate:migration • 產生 migration - generator 版的產生 migration 指令,優 點在於透過 migration 名的保留字,預 先產生 Schema Builder 語法 • 範例: $  php  artisan  generate:migration  create_posts_table
  • 20. Migration 案結構 • 分成 up / down (前進/後退) - up 寫要做變更的內容 (新增、刪除、 重新命名) - down 是寫如何將 up 的內容做還原 (刪 除、新增、重新命名) ★ 參考:http://laravel.tw/docs/migrations
  • 21. Schema Builder 語法 在 migrate 裡 寫 up/down 內容
  • 22. Schema Builder 語法 • 建立資料表 • 重新命名資料表 • 刪除資料表 Schema::create('users',  function($table) {        $table-­‐>increments('id'); }); Schema::rename($from,  $to); Schema::drop('users'); ★ 語法參考:http://laravel.tw/docs/4.2/schema#creating-and-dropping-tables
  • 23. Schema Builder 語法 • 建立欄位 • 重新命名欄位 • 刪除欄位 Schema::table('users',  function($table) {        $table-­‐>string('email'); }); Schema::table('users',  function($table) {        $table-­‐>renameColumn('from',  'to'); }); Schema::table('users',  function($table) {        $table-­‐>dropColumn('votes'); }); (要額外安裝  doctrine/dbal  套件) ★ 語法參考:http://laravel.tw/docs/4.2/schema#adding-columns
  • 24. Schema Builder 語法 • 增加 index • after 語法 ★ 語法參考:http://laravel.tw/docs/4.2/schema#adding-indexes $table-­‐>string('email')-­‐>unique(); $table-­‐>string('name')-­‐>after('email');
  • 26. artisan migrate • 呼叫 artisan 執行 migrate 動作 - 寫完 migrate 後,要執行此指令才 會正式修改資料庫 - artisan 會自動依照 migrations 資料表的 紀錄進行版本控管 • 範例: $  php  artisan  migrate
  • 28. 其他 migrate 指令 • 還原 • 回到最初 • 回到最初後再重 一次 $  php  artisan  migrate:rollback $  php  artisan  migrate:reset $  php  artisan  migrate:refresh
  • 29. 小技巧 • 在輸入 migration 名稱時打錯字怎麼辦? - 先 rollback,重新命名 Class 名稱及 案 名稱,再執行 dump-autoload 及 migrate 指令 - 把產生出來的 案手動刪除掉、資料庫 內資料表 掉,再重新產生一次
  • 30. 小技巧 • 不小心把 migration 資料表弄壞、弄亂無 法復原時怎麼辦? - 試試 php artisan migrate:reset - 把所有資料表全部手動刪除,再重新 一次 php artisan migrate 重建所有資料表
  • 31. 存 點 • 試著把現在已經可以運作的程式碼加入版 本控制內 • 流程提醒: - working directory > staging area > commit
  • 32. 階段檢查表 • 確認產生出 3 個 migration • 確認 DB 裡目前有 4 個資料表,分別為: migrations、posts、categories、comments
  • 34. 單元小結 • 在 個單元裡,我們說明如何使用 Laravel 的 Migration 功能為資料庫做版本控制, 並將 Blog 所需要的有個資料表建立完成 • 下一個單元,我們將學習如何使用 Laravel 的 Seeding 功能,協助我們產生資料庫內 的測試資料