1. 備份項目與數據庫
升級前必須完整備份項目文件(包括app/
、config/
、routes/
等核心目錄)和數據庫,防止升級過程中因文件損壞或數據丟失導致無法恢復??墒褂?code>cp -r命令復制項目到獨立備份目錄(如/path/to/backup/laravel_project_backup
),用mysqldump
導出數據庫(如mysqldump -u username -p database_name > /path/to/backup/database_backup.sql
)。
2. 更新Composer至最新版本
Laravel升級依賴Composer管理依賴關系,需先確保Composer為最新版本,避免因Composer版本過低導致依賴解析失敗。運行composer self-update
完成更新。
3. 檢查Laravel版本兼容性
通過composer show laravel/framework
查看當前Laravel版本,對照官方升級指南(如UPGRADE.md
或CHANGELOG
)確認目標版本與當前版本的兼容性。重點關注:重大變更(如廢棄的功能、API修改)、PHP版本要求(如Laravel 10需要PHP 8.1+)、依賴包兼容性(如第三方包是否支持新版本)。
4. 處理依賴沖突
升級Laravel框架后,運行composer update
更新其他依賴包時,可能會遇到版本沖突(如第三方包不支持新Laravel版本)。需手動修改composer.json
中的依賴版本(如將沖突包的版本限制為兼容范圍),或使用composer require
單獨更新沖突包(如composer require package/name:^1.2
),確保所有依賴與新Laravel版本兼容。
5. 運行遷移與數據填充
升級后,檢查是否有新的數據庫遷移文件(運行php artisan migrate:status
查看未運行遷移),若有則運行php artisan migrate
應用遷移;若有數據初始化需求(如新增表數據),運行php artisan db:seed
或指定Seeder類(如php artisan db:seed --class=YourSeederClass
)填充數據。注意:migrate:fresh
會刪除所有表并重新運行遷移,僅能在測試環境使用,生產環境需謹慎。
6. 測試與驗證
在測試環境中全面測試應用程序功能,包括路由跳轉、控制器邏輯、模型交互、視圖渲染、API接口等,確保升級未引入新bug。特別注意檢查第三方包是否正常工作(如支付接口、短信服務、第三方登錄等),運行php artisan test
執行單元測試和功能測試,覆蓋核心業務流程。
7. 檢查配置文件適配性
升級后,檢查.env
文件中的配置項(如APP_ENV
、APP_KEY
、數據庫連接信息DB_HOST
/DB_PORT
/DB_DATABASE
/DB_USERNAME
/DB_PASSWORD
)是否與新版本兼容,尤其是新版本新增的配置項(如緩存驅動CACHE_DRIVER
、隊列驅動QUEUE_CONNECTION
)是否需要調整。運行php artisan config:cache
清除并重新生成配置緩存,確保配置生效。
8. 選擇合適的升級策略
composer update laravel/framework
,然后按上述步驟測試,適用于bug修復和小功能更新。composer create-project laravel/laravel new_project
),將舊項目的app/
、config/
、routes/
等核心目錄復制到新項目中,再更新composer.json
中的依賴版本(如修改laravel/framework
版本號),運行composer update
,最后遷移數據庫和測試。大版本升級需重點關注UPGRADE.md
中的重大變更,避免遺漏關鍵步驟。9. 監控生產環境運行狀態
升級到生產環境后,密切監控應用程序的性能指標(如響應時間、內存占用、CPU使用率)和日志文件(storage/logs/laravel.log
),及時發現并解決潛在問題(如依賴錯誤、配置錯誤、數據庫連接失?。?。建議開啟錯誤監控工具(如Sentry、Bugsnag),快速定位和修復線上問題。