BemiHQ/bemi-prisma v1.0.0 版本发布:重大改进与全新API设计

BemiHQ/bemi-prisma v1.0.0 版本发布:重大改进与全新API设计

bemi-prisma Automatic data change tracking for Prisma bemi-prisma 项目地址: https://gitcode.com/gh_mirrors/be/bemi-prisma

BemiHQ/bemi-prisma 是一个为 Prisma ORM 提供 PostgreSQL 变更数据捕获(CDC)功能的扩展工具。它通过记录数据库变更操作,帮助开发者实现审计追踪、数据同步等高级功能。最新发布的 v1.0.0 版本带来了多项重大改进,重新设计了 API 接口,并修复了一些关键问题。

核心变更与改进

1. 更清晰的API设计

新版本彻底重构了 API 设计,使其更加直观和符合开发者预期:

  • 初始化方式变更:从原先的 withPgAdapter() 拆分为两个更明确的函数 - new PrismaPg() 用于创建 Prisma 客户端实例,withBemiExtension() 用于应用 Bemi 扩展。

  • 中间件处理改进:用 bemiMiddleware() 替代了原先的 setContext(),这使得中间件的用途更加明确,同时也更符合 Prisma 中间件的命名惯例。

  • 上下文设置优化setBemiContext() 取代了 bemiContext(),名称更加清晰地表达了其设置上下文的功能。

这些变更虽然带来了破坏性变化,但显著提升了代码的可读性和一致性,使开发者能够更直观地理解和使用 API。

2. 上下文管理增强

新版本引入了更强大的上下文管理功能:

  • 新增 mergeBemiContext():允许开发者合并新的上下文信息到现有上下文中,而不是完全覆盖,这在微服务架构中特别有用。

  • 新增 currentBemiContext():提供了获取当前上下文的能力,方便调试和日志记录。

  • SQL注入控制:通过 injectSqlInContext 选项,开发者可以自主决定是否在上下文中包含执行的 SQL 查询,这既提升了安全性又增加了灵活性。

3. 兼容性修复

解决了 PostgreSQL 表名中包含连字符(-)时的迁移生成问题。这一修复使得 Bemi 能够更好地适应各种命名约定,特别是那些遵循特定命名规范的项目。

升级指南

对于现有项目升级到 v1.0.0 版本,开发者需要进行以下调整:

  1. 替换所有 withPgAdapter() 调用为 new PrismaPg()withBemiExtension() 的组合使用。

  2. 将中间件设置从 setContext() 更新为 bemiMiddleware()

  3. 所有内联上下文设置应从 bemiContext() 改为 setBemiContext()

  4. 如果需要保留 SQL 查询在上下文中的功能,需要显式设置 injectSqlInContext: true

技术价值

这次更新不仅仅是简单的 API 变更,它反映了 Bemi 项目对开发者体验的深入思考:

  1. 关注点分离:将初始化逻辑拆分为创建客户端和应用扩展两个步骤,遵循了单一职责原则。

  2. 安全性提升:默认禁用 SQL 注入到上下文中,减少了潜在的安全风险。

  3. 调试友好:新增的上下文获取和合并功能大大简化了复杂场景下的问题排查。

  4. 兼容性增强:修复表名处理问题使得 Bemi 能够在更广泛的环境中稳定工作。

对于需要实现数据变更追踪的项目,升级到 v1.0.0 将获得更稳定、更安全且更易用的开发体验。这些改进也为未来功能的扩展奠定了坚实的基础。

bemi-prisma Automatic data change tracking for Prisma bemi-prisma 项目地址: https://gitcode.com/gh_mirrors/be/bemi-prisma

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邹冉琼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值