我正在尝试在 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)