1. 备份项目与数据库
升级前必须备份项目文件(包括app/
、config/
、routes/
等核心目录)和数据库,防止升级过程中出现文件损坏或数据丢失。可使用cp -r
命令复制项目到备份目录,用mysqldump
导出数据库。
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
单独更新冲突包,确保所有依赖与新Laravel版本兼容。
5. 运行迁移与数据填充
升级后,检查是否有新的数据库迁移文件(php artisan migrate:status
),若有则运行php artisan migrate
应用迁移;若有数据初始化需求,运行php artisan db:seed
或指定Seeder类填充数据。注意:migrate:fresh
会删除所有表并重新运行迁移,仅能在测试环境使用,生产环境需谨慎。
6. 测试与验证
在测试环境中全面测试应用程序功能(包括路由、控制器、模型、视图、API等),运行单元测试(php artisan test
)和功能测试,确保升级未引入新bug。特别注意检查第三方包是否正常工作(如支付、短信等第三方服务)。
7. 检查配置文件适配性
升级后,检查.env
文件中的配置项(如APP_ENV
、APP_KEY
、数据库连接信息)是否与新版本兼容,尤其是新版本新增的配置项(如缓存驱动、队列驱动)是否需要调整。同时,运行php artisan config:cache
清除并重新生成配置缓存。
8. 选择合适的升级策略
composer update laravel/framework
,然后按上述步骤测试。composer create-project laravel/laravel
),将旧项目的app/
、config/
、routes/
等目录复制到新项目中,再更新composer.json
并运行composer update
,最后迁移数据库和测试。9. 监控生产环境运行状态
升级到生产环境后,密切监控应用程序的性能(如响应时间、内存占用)和日志(storage/logs/laravel.log
),及时发现并解决潜在问题(如依赖错误、配置错误)。