Dart 无法从 Prisma 客户端生成“prisma_client.g.dart”

问题描述 投票:0回答:1

我有一个 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。

我已经在网上搜索过,但似乎对这个堆栈组合的参与很少,任何形式的帮助都将非常感激。 谢谢你。

json flutter sqlite dart prisma
1个回答
0
投票

他说的话:

不幸的是,Prisma for Dart 目前不支持 Prisma 5.x 版本(由于巨大的变化)。你也应该看看我的推文,由于我的公司破产,我现在只能过正常的生活。真的很抱歉,不知道什么时候才能有时间回来继续维护,但是我一直关注这个项目。一旦我还清债务,我将回到开源并继续维护 Dart 的 Prisma。

您可以查看此链接https://github.com/odroe/prisma-dart/issues/259

© www.soinside.com 2019 - 2024. All rights reserved.