礼宾专车平台 PostgreSQL 数据库的 Prisma ORM 数据层

数据访问

Prisma

类型安全的 ORM 迁移确保 PostgreSQL 数据库结构与 NestJS 服务保持一致。

礼宾专车平台 PostgreSQL 数据库的 Prisma ORM 数据层
概述

类型化数据层

Prisma 数据模型以严格关系定义预订、车队、合作伙伴与财务表。

生成的客户端类型流入 NestJS 服务——消除业务逻辑中的字符串类型 SQL。

迁移与 Pull Request 同步对数据库变更进行版本控制,支持可审查的发布。

  • 声明式数据模型
  • 生成的 TypeScript 客户端
  • 可审查的迁移
  • 关系完整性
如何运作

从模型变更到生产部署

  • 步骤 1

    建模

    工程师在 schema.prisma 中更新新字段与索引。

  • 步骤 2

    迁移

    prisma migrate 生成 SQL,在部署前经 CI 审查。

  • 步骤 3

    部署

    容器执行迁移后,以匹配的客户端版本启动 NestJS。

礼宾专车平台 PostgreSQL 数据库的 Prisma ORM 数据层
优势

工程成效

  • 减少运行时意外

    编译时类型在生产前捕获缺失的关联查询。

  • 更安全的重构

    关系图在实体重命名时揭示级联影响。

  • 入职速度

    新开发者阅读数据模型,而非依赖隐性 SQL 经验。

Prisma 安全
安全

数据访问控制

服务从不使用用户输入构造原始 SQL——Prisma 对查询进行参数化处理。

数据库角色将迁移用户与应用读写用户分离。

  • 参数化查询
  • 分离的数据库角色
  • 禁止生产环境即席 SQL
  • 迁移用户隔离
Prisma 集成
集成

NestJS 集成

PrismaService 按请求封装客户端,并在仓储层注入租户过滤器。

种子脚本为沙箱合作伙伴初始化演示租户,不影响生产环境。

  • NestJS PrismaService
  • 租户过滤器中间件
  • 种子脚本
  • CI 迁移差异
Prisma 应用场景
应用场景

数据模型领域

  • 预订生命周期

    状态、乘客与定价明细为复杂礼宾行程建模。

  • 合作伙伴结算

    账本表通过外键将行程与付款批次关联。

  • 审计历史

    不可变审计行通过外键引用操作者,无空值混乱。

支持

Prisma 常见问题