Skip to content

升级指南

Prisma Dart v4 -> v5 & Flutter 集成

从 Prisma Dart v4 升级到 v5 相对简单。虽然这是一个主要版本变更,但用户 API 没有发生变化。

Prisma 模式中的 engineType

现在,在 Flutter 集成中,您告诉生成器您想要为 Flutter 生成客户端

prisma
generator client {
  provider   = "dart run orm"
  output     = "../lib/_generated_prisma_client"
  engineType = "flutter"
}

PrismaClient

Prisma Client 的主要变化

  1. 从隔离类型更改为自依赖类型,使用 Class PrismaClient extends BasePrismaClient<PrismaClient>
  2. 已弃用 PrismaClient.use 方法。

之前

dart
final prisma = PrismaClient.use((schema, datasoruce) {
    /// Your codes, create engine and returns.
});

现在

dart
final engine = ...; // You created engine instance.
final prisma = PrismaClient(engine: engine);

日志记录

以前,我们依赖于 logging 包进行日志记录。然后您需要监听日志并自行输出它们。

现在,Prisma Dart 实现了与 Prisma TS/JS 客户端相同的日志记录。

有关更多日志记录信息,请参阅 👉 Prisma 日志记录

输出到控制台

之前

dart
import 'package:loging/loging.dart';

Logger.root.onRecore.listen((log) {
    print(log.message);
});

现在

dart
final prisma = PrismaClient(
    log: {
        (LogLevel.query, LogEmit.stdout),
        // ... More level configs
    },
);

日志事件

之前

dart
import 'package:loging/loging.dart';

Logger.root.onRecore.listen((log) {
    //... You custon.
});

现在

dart
final prisma = PrismaClient(
    log: {
        (LogLevel.query, LogEmit.event),
        // ... More level configs
    },
);

prisma.$on(LogLevel.query, (event) {
    // ...
});

在 BSD-3-Clause 许可证下发布