我有一个 flutter 应用程序,我想根据在 https://prisma.pub 所做的工作,将 SQLite 数据库与 Prisma ORM 结合使用。
一切似乎都工作正常,直到我运行命令
dart run build_runner build
,然后它无法生成 dart prisma 客户端以与 Prisma 生成的客户端一起使用。
这是我现在正在使用的 prisma 模式
generator client {
provider = "dart run orm"
}
datasource db {
provider = "sqlite"
url = "file:./source.db"
}
model User {
id String @id @default(uuid())
email String @unique
firstname String?
lastname String?
userpass String
role String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
status Boolean @default(true)
userID String? @unique
}
跑步时
npx prisma generate
,
prisma 客户端已成功生成并需要此文件
part 'prisma_client.g.dart';
但是当我跑步时
dart run build_runner build
我收到以下错误:
$ dart run build_runner build
[INFO] Generating build script completed, took 296ms
[INFO] Reading cached asset graph completed, took 89ms
[INFO] Checking for updates since last build completed, took 800ms
[INFO] Running build completed, took 21ms
[INFO] Caching finalized dependency graph completed, took 46ms
[SEVERE] json_serializable on lib/src/generated/prisma/prisma_client.dart (cached):
Could not generate `fromJson` code for `equals`.
To support the type `InvalidType` you can:
* Use `JsonConverter`
https://pub.dev/documentation/json_annotation/latest/json_annotation/JsonConverter-class.html
* Use `JsonKey` fields `fromJson` and `toJson`
https://pub.dev/documentation/json_annotation/latest/json_annotation/JsonKey/fromJson.html
https://pub.dev/documentation/json_annotation/latest/json_annotation/JsonKey/toJson.html
package:class_wise/src/generated/prisma/prisma_client.dart:567:30
╷
567 │ final StringFieldRefInput? equals;
│ ^^^^^^
╵
[SEVERE] Failed after 83ms
由于我要添加更多模型,所以我想要一个永久的解决方案,这样我就不必手动编码将出现的每个不可用数据类型转换错误的 toJson。
我已经在网上搜索过,但似乎对这个堆栈组合的参与很少,任何形式的帮助都将非常感激。 谢谢你。
他说的话:
不幸的是,Prisma for Dart 目前不支持 Prisma 5.x 版本(由于巨大的变化)。你也应该看看我的推文,由于我的公司破产,我现在只能过正常的生活。真的很抱歉,不知道什么时候才能有时间回来继续维护,但是我一直关注这个项目。一旦我还清债务,我将回到开源并继续维护 Dart 的 Prisma。