# @aws/aurora-dsql-prisma-tools 中文文档

规范地址：https://npmcn.com/package/%40aws/aurora-dsql-prisma-tools/

版本：0\.1\.4
npm 元数据更新时间：2026-10-12T17:25:42.800Z
中文译文更新时间：2026-11-07T14:31:46.965Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40aws/aurora-dsql-prisma-tools
原文对照：https://npmcn.com/package/%40aws/aurora-dsql-prisma-tools/?lang=original
项目主页：https://github.com/awslabs/aurora-dsql-orms#readme
源码仓库：https://github.com/awslabs/aurora-dsql-orms

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：69.6 kB，18 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=20
- 运行依赖：1 个
- 首次发布：2026-02-03T00:36:34.992Z
- 最新版本发布：2026-10-12T17:25:42.314Z
- 近 30 天下载量：18067（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：4（近 12 个月 4 个）

## 中文简介

使用 Amazon Aurora DSQL 的 CLI 工具

## 安装

```sh
npm install @aws/aurora-dsql-prisma-tools
```

也可以使用：`pnpm add @aws/aurora-dsql-prisma-tools`、`yarn add @aws/aurora-dsql-prisma-tools`、`bun add @aws/aurora-dsql-prisma-tools`

## README

# 奥罗拉 DSQL 用于 Prisma 的工具

[![GitHub](https://img.shields.io/badge/github-awslabs/aurora--dsql--orms-blue?logo=github)](https://github.com/awslabs/aurora-dsql-orms) [![npm version](https://img.shields.io/npm/v/@aws/aurora-dsql-prisma-tools.svg)](https://www.npmjs.com/package/@aws/aurora-dsql-prisma-tools) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Discord chat](https://img.shields.io/discord/1435027294837276802.svg?logo=discord)](https://discord.com/invite/nEF6ksFWru)

用于使用的 CLI 工具 [Prisma ORM 软件](https://www.prisma.io/) 与 [亚马逊·奥罗拉 DSQL](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/what-is-aurora-dsql.html)。 。 。 .

## 概览

本套件提供:

1.  **Schema 校验器** - 为DSQL兼容性验证 Prisma 计划
2.  **迁移变换器** - 使用 DSQL 兼容的 SQL 转换 Prisma 迁移 [`dsql-lint`](https://github.com/awslabs/aurora-dsql-tools/tree/main/dsql-lint)
3.  **迁移线条** - 检查 SQL 迁移的 DSQL 兼容性而不修改它们
4.  **全能迁移命令** - 一步步验证、生成和变换

奥罗拉DSQL有 [特定的 PostgreSQL 兼容性限制](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/working-with-postgresql-compatibility-unsupported-features.html)。这些工具帮助您及早抓住问题,并实现所需转变的自动化.

## 安装

```bash
npm install --save-dev @aws/aurora-dsql-prisma-tools
```

**支持的Node.js版本 :** 20+ (活性及活性TS释放)

`@aws/dsql-lint` 包含使用 npm 的 `latest` ditt-tag 并使用其捆绑 二进制默认( 不需要设置) 。 新的依赖分辨率安装 当前发布; 已存在的锁文件将记录的版本保存到 依赖更新或重新生成锁文件 。 使用习惯或 已安装, 设置 `DSQL_LINT_PATH`。 。 。 .

## 快速启动

在一个命令中生成一个 DSQL 兼容的迁移 :

```bash
npx aurora-dsql-prisma migrate prisma/schema.prisma -o prisma/migrations/001_init/migration.sql
```

如果验证失败, 请修复您的方案并重新运行 .

## 图标

### 验证Schema

在运行时间前检查您的 Prisma 计划是否兼容 :

```bash
npx aurora-dsql-prisma validate prisma/schema.prisma
```

#### 校验器检查什么

校验器从您的方案生成 SQL 和代表符兼容性检查 改为 [`dsql-lint --fix`](https://github.com/awslabs/aurora-dsql-tools/tree/main/dsql-lint), (中文(简体) ), 改变迁移的相同路径。 可变的 SQL 通道验证 有建议; 无法修复的 SQL 失败 . `relationMode = "prisma"` 仍然有用 自动迁移,但不再是强制性的.

#### 示例输出

```
⚠ Column `"id"` uses SERIAL, which is not supported in DSQL.
  → Replaced SERIAL with a DSQL-compatible identity column.

✓ Validation passed with 1 advisory
```

### 转变移徙

变换 Prisma 生成的迁移为 DSQL 兼容 :

```bash
# Transform from file
npx aurora-dsql-prisma transform raw.sql -o migration.sql

# Transform using pipes (stdin)
npx prisma migrate diff \
    --from-empty \
    --to-schema prisma/schema.prisma \
    --script | npx aurora-dsql-prisma transform > migration.sql
```

#### 变形器会做什么

转换命令使用 [`dsql-lint --fix`](https://github.com/awslabs/aurora-dsql-tools/tree/main/dsql-lint) 以应用 DSQL 兼容性修正。 见 [dsql-lint 读取](https://github.com/awslabs/aurora-dsql-tools/tree/main/dsql-lint) 为规则和转变的完整列表.

#### 交易

Aurora DSQL允许每次交易一个 DDL 语句. `transform` 设置 DDL 单项发言 `BEGIN`编号 :`COMMIT` 区块 `prisma migrate deploy`,哪个 可以将文件运行为一个交易。 数据变化与 DDL 分开运行; 相邻数据变化共享交易。 将大数据变化分开 在DSQL范围内的迁移 [交易限制](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/CHAP_quotas.html)。 。 。 .

如果声明失败,仍适用先前承诺的更改。 如果 Prisma 报告 仅限 `current transaction is aborted`,运行第一个未应用区块 `psql` 或者说 `npx prisma db execute` 寻找原因 那就修补一下 [解决失败的迁移](https://pris.ly/d/migrate-resolve)。 。 。 .

拆分产生一个咨询: `transform` 写 SQL 有代码的退出 `3`· ; `migrate` 登录带有代码的咨询和退出 `0`。 。 。 .

单一报表和仅数据文件不需要分割. 包含的文件 `COMMIT`, (中文(简体) ), `ROLLBACK`,或交易范围设置 作为 `SET LOCAL`,将每个 DDL 语句放入自己的交易并重复任何 需要设置. `transform` 不为这些文件添加交易块, 不过 `dsql-lint` 可以分割已存在的块,结束其交易范围设置. 如果任何陈述都不属于这些文件中明确交易的范围, `transform` 报告为何跳出并用代码退出 `3`。其发言的文件 所有交易都是明确的,但没有得到这种补充建议.

手写迁移时,各放 `CREATE ROLE`, (中文(简体) ), `CREATE DOMAIN`, (中文(简体) ), `GRANT`, (中文(简体) ), 或者说 `COMMENT ON` 声明本身 `BEGIN`编号 :`COMMIT` 块. `dsql-lint` 已经 不将这些报表分割为单独的交易.

### 林特移徙

检查 SQL 迁移文件, 以获取 DSQL 兼容性而不应用修正 :

```bash
npx aurora-dsql-prisma lint migration.sql
```

使用 `transform` 部署前: `lint` 检查 SQL 兼容性,但不兼容 将文件作为单笔交易运行.

### 全能移动

一步步验证、生成和变换:

```bash
npx aurora-dsql-prisma migrate prisma/schema.prisma -o prisma/migrations/001_init/migration.sql
```

关于利用现有数据库进行增量迁移:

```bash
npx aurora-dsql-prisma migrate prisma/schema.prisma \
    -o prisma/migrations/002_add_column/migration.sql \
    --from-config-datasource
```

## 递增移徙

初始部署后,请使用 `--from-config-datasource` 生成只包含与实时数据库差异的迁移:

```bash
npx aurora-dsql-prisma migrate prisma/schema.prisma \
    -o prisma/migrations/002_add_email/migration.sql \
    --from-config-datasource
```

这需要 `prisma.config.ts` 提供数据库证书。 见 [实例](https://npmcn.com/package/%40aws/aurora-dsql-prisma-tools/examples/veterinary-app/) (a) 执行工作.

### 处理不支持的语句

Prisma 生成创建后外国密钥 `ALTER TABLE ... ADD CONSTRAINT`奥罗拉DSQL需要 `NOT VALID` 这些限制,所以 `dsql-lint` 保存外国密钥并添加 `NOT VALID`。运行后 `transform`中,添加以下块以验证已存在的行,或将其放入 单独迁移。 在变换前添加它 阻止变压器 将剩余发言包起来:

```sql
BEGIN;
ALTER TABLE ASYNC "table_name" VALIDATE CONSTRAINT "constraint_name";
COMMIT;
```

变换出口有代码 `3` 以确保您审查并添加验证 语句。 约束立即适用于新写作, 但已有行 在同步工作完成之前,保持无效.

## Prisma Schema 要求

当使用 Aurora DSQL 时:

1.  **选择关系模式**数字 :
    
    ```prisma
    datasource db {
      provider     = "postgresql"
      relationMode = "prisma"
    }
    ```
    
    使用 `relationMode = "prisma"` 应用程序何时模拟 优惠诚信. 要使用本地的 DSQL 外国密钥, 请省略 。 奥罗拉 DSQL 支持 `NoAction`, (中文(简体) ), `Restrict`, (中文(简体) ), `Cascade`, (中文(简体) ), `SetNull`,以及 `SetDefault`。 。 。 . 创作后的限制改为: `NOT VALID`; 添加 相应 `ALTER TABLE ASYNC ... VALIDATE CONSTRAINT` 发言前 应用迁移.
    
    分层动作算向 Aurora DSQL 的交易行修改 限制。 偏爱 `NoAction` 或者说 `Restrict` 儿童占多数的地方 未绑定,通过重试处理进行交易,因为外国钥匙 冲突可以作为序列化失败而出现.
    
2.  **对ID使用UUID**数字 :
    
    ```prisma
    model User {
      id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
    }
    ```
    
3.  **禁用咨询锁定** - 迁移时:
    
    ```bash
    PRISMA_SCHEMA_DISABLE_ADVISORY_LOCK=1 npx prisma migrate deploy
    ```
    

Aurora DSQL SQL 兼容性细节的完整列表,请参见: [PostgreSQL 兼容性参考](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/working-with-postgresql-compatibility.html)。 。 。 .

## 示例

见 [实例/技术应用/](https://npmcn.com/package/%40aws/aurora-dsql-prisma-tools/examples/veterinary-app/) 包括:

-   与 DSQL 兼容的 Prisma 方案
-   带有自动IAM认证的 DsqlPrisma 客户端
-   CRUD 样本操作
-   融合测试

## 额外资源

-   [Amazon Aurora DSQL 文档](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/what-is-aurora-dsql.html)
-   [不支持的 PostgreSQL DSQL 特性](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/working-with-postgresql-compatibility-unsupported-features.html)
-   [奥罗拉 DSQL 节点张贴的连接器](https://github.com/awslabs/aurora-dsql-connectors/tree/main/node/node-postgres/)
-   [Prisma 文档](https://www.prisma.io/docs)
-   [Prisma 关系模式](https://www.prisma.io/docs/orm/prisma-schema/data-model/relations/relation-mode)

## 警卫

见 [捐款](https://npmcn.com/package/CONTRIBUTING.md#security-issue-notifications) 更多信息.

## 许可证

这个项目根据Apache-2.0许可证获得许可证.

## 常见问题

### @aws/aurora-dsql-prisma-tools 是什么？

使用 Amazon Aurora DSQL 的 CLI 工具

### 如何安装 @aws/aurora-dsql-prisma-tools？

在项目目录运行 npm install @aws/aurora-dsql-prisma-tools，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 aurora-dsql-prisma，可以用 npx aurora-dsql-prisma 直接运行。

### @aws/aurora-dsql-prisma-tools 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @aws/aurora-dsql-prisma-tools 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @aws/aurora-dsql-prisma-tools 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=20。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @aws/aurora-dsql-prisma-tools 可以商用吗？

@aws/aurora-dsql-prisma-tools 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @aws/aurora-dsql-prisma-tools 的下载量有多少？

根据 npm 官方下载统计，@aws/aurora-dsql-prisma-tools 在 2026/10/08 – 2026/11/06 这 30 天内被下载 18,067 次，日均约 602 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @aws/aurora-dsql-prisma-tools 还在维护吗？

最新版本 0\.1\.4 发布于 2026/10/13（26 天前）；至今共发布 4 个版本，其中过去 12 个月发布了 4 个；首次发布于 2026/02/03。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

