小编Kan*_*rix的帖子

如何在 Rust SQLx 中创建自定义 Postgres 枚举类型?

我正在尝试在 Postgres 中创建自定义枚举类型并已成功完成。我的迁移看起来像这样:

CREATE TYPE role AS ENUM ('admin', 'user');

ALTER TABLE users
ADD role role DEFAULT 'user';
Run Code Online (Sandbox Code Playgroud)

然后我在 Rust 中创建了枚举类型,如下所示:

#[derive(Serialize, Deserialize, Debug, sqlx::Type)]
#[sqlx(type_name = "role", rename_all = "lowercase")] 
pub enum Role {
    ADMIN,
    USER
}
Run Code Online (Sandbox Code Playgroud)

我也改变了用户模型:

#[derive(sqlx::FromRow, Debug)]
pub struct User {
    pub id: i32,
    pub email: String,
    pub username: String,
    pub password: String,
    pub role: Role,
    pub created_at: DateTime<Utc>,
    pub updated_at: DateTime<Utc>,
}
Run Code Online (Sandbox Code Playgroud)

但现在当我尝试像这样查询数据库时:

let user = match sqlx::query_as!(
    User,
    "SELECT * FROM users WHERE email …
Run Code Online (Sandbox Code Playgroud)

postgresql rust rust-sqlx

5
推荐指数
1
解决办法
4177
查看次数

标签 统计

postgresql ×1

rust ×1

rust-sqlx ×1