0.6.0 迁移

0.6.0 迁移

版本 0.6.0 引入了一些重大更改 (在新标签页中打开),以下是如何更新您的项目以使其正常工作。

删除 create 中的必填字段说明符

// Before
client
    .user()
    .create(user::name::set("Brendan".to_string()), vec![])
client
    .post()
    .create(post::author::link(user::id::equals(0)), vec![])
 
// After
client
    .user()
    .create("Brendan".to_string(), vec![])
client
    .post()
    .create(user::id::equals(0), vec![])

使用专用的 updatedelete 操作

// Before
client
    .user()
    .find_unique(user::id::equals(0))
    .update(vec![])
client
    .user()
    .find_unique(user::id::equals(0))
    .delete()
 
// After
client
    .user()
    .update(user::id::equals(0), vec![])
client
    .user()
    .delete(user::id::equals(0))

此模式也适用于 update_manydelete_many

// Before
client
    .user()
    .find_many(vec![user::name::contains("Brendan".to_string())])
    .update(vec![])
client
    .user()
    .find_many(vec![user::name::contains("Brendan".to_string())])
    .delete()
 
// After
client
    .user()
    .update_many(vec![user::name::contains("Brendan".to_string())], vec![])
client
    .user()
    .delete_many(vec![user::name::contains("Brendan".to_string())])

使用 connect/disconnect

关系字段函数 linkunlink 已分别重命名为 connectdisconnect

使用 equals 而不是 cursor 字段函数

cursor 构建器函数现在接受 UniqueWhereParam,因此任何使用 cursor 字段函数的地方都可以替换为 equals

// Before
client
    .user()
    .find_many(vec![])
    .cursor(user::id::cursor(0))
 
// After
client
    .user()
    .find_many(vec![])
    .cursor(user::id::equals(0))

使用 QueryError 类型

prisma_client_rust::queries::Error 已重命名并可访问为 prisma_client_rust::QueryError。此外,error_is_type 函数已移至 QueryError::is_prisma_error

删除 Optionupdatedelete 的处理

updatedelete 现在返回错误而不是 Option(如果未找到记录)。此行为与官方 Prisma 客户端一致。

更新关系访问器的错误处理

关系访问器不再产生字符串错误,而是具有专用的 prisma_client_rust::RelationNotFetchedError 类型。

使用特性解析器版本 2

如果您未使用工作区,请在您的 Cargo.toml 中设置 如果您使用的是工作区,请在根目录下的 Cargo.toml 中设置 resolver = "2"

更多信息可在 发行说明(在新标签页中打开) 中找到。