升级
当新版 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