jsonb
在 Diesel 1.x 中,我定义了一个反映如下数据类型的模型:
use diesel::pg::types::sql_types::Jsonb;
#[derive(FromSqlRow, AsExpression, serde::Serialize, serde::Deserialize, Debug, Default)]
#[sql_type = "Jsonb"]
pub struct ChannelTag {
pub id: i32,
pub name: String,
}
今天我将Diesel升级到2.0.4并编译项目时,出现错误:
error[E0603]: module `types` is private
--> src/model/app/cruise/channel/channel_tag.rs:1:17
|
1 | use diesel::pg::types::sql_types::Jsonb;
| ^^^^^ private module
看来他们将types
模块转为私有,不再对外公开?那么我应该如何定义jsonb
Diesel 2.x 中的数据类型呢?
它只是移动模块。您可以在 Postgres 数据库中找到它
diesel::pg::sql_types
,甚至可以diesel::sql_types
在使用 Postgres 数据库时找到它。因此,迁移后您的代码应如下所示:专业提示:当您遇到导入问题时,您可以首先快速搜索文档来自行回答此类导入问题。模块重新组织是更新库主要版本的自然部分。