升级
当新版 Loco 发布时该怎么做?
- 在你的代码仓库中创建一个干净的分支。
- 更新你的主
Cargo.toml
文件中的 Loco 版本。 - 参考 CHANGELOG 查找破坏性变更以及你应该做的重构(如果有的话)。
- 在你的项目中运行
cargo loco doctor
以验证你的应用和环境与新版本兼容
和往常一样,如果出现任何问题,提交 issue 并寻求帮助。
主要的 Loco 依赖
Loco 构建于优秀的库之上。关注 Loco 新版本中这些库的版本以及它们各自的更新日志是明智的。
以下是主要的依赖库:
从 0.13.x 升级到 0.14.x
从 Axum 0.7 升级到 0.8
PR: #1130 升级到 Axum 0.8 引入了一个破坏性变更。更多详情,请参考 公告。
升级步骤
- 在你的
Cargo.toml
文件中,将 Axum 版本从0.7.5
更新到0.8.1
。 - 将
use axum::async_trait;
替换为use async_trait::async_trait;
。 更多信息,请查看这里。 - URL 参数语法已更改。 参考此部分 了解更新后的语法。 新的路径参数格式为:
路径参数语法已从
/:single
和/*many
更改为/{single}
和/{*many}
。
扩展 boot
函数 Hook
PR: #1143
boot
hook 函数现在接受一个额外的 Config
参数。 函数签名已从以下形式更改:
从
async
到:
async
请确保根据需要导入 Config
类型。
升级 validator crate
PR: #993
更新你的 Cargo.toml
文件中的 validator
crate 版本:
从
validator = { version = "0.18" }
到
validator = { version = "0.19" }
扩展 truncate 和 seed hooks
PR: #1158
truncate
和 seed
函数现在接收 AppContext
而不是 DatabaseConnection
作为它们的参数。
从
async
async
到
async
async
对测试的影响:
涉及 seed
函数的测试代码也必须相应地更新。
从:
async
到
async