我们如何在 sqlx rust 中定义 jsonb 和 UUID 字段?

How do we define a jsonb and UUID field in sqlx rust?

我有一个具有三个字段的 Postgres table id 是一个 bigserialmeta 一个 jsonb 字段和一个 uuid UUID 字段。

pub struct MetaLogs {

    pub id:i64,
    pub uuid: <what type should I give here > 
    pub meta: < What type should I give here > 
}

我正在为 Rust 使用 sqlx ORM。 虽然我明白我必须添加

features = [ "runtime-tokio", "macros" ,"postgres","json","uuid"]

在那之后我无法弄清楚如何继续

sqlx 为 PostgreSQL 提供了 JsonUuid 类型的实现。参见 uuid.rs and json.rs

请注意,Json 类型将在内部解析为 jsonb,如您所料。

样本:

use sqlx::{types::Uuid, types::Json};
pub struct MetaLogs {
    pub id: i64,
    pub uuid: Uuid, 
    pub meta: Json,
}