@aws/aurora-dsql-prisma-tools

中文文档
0.1.4发布于 2026/10/13Apache-2.0TypeScriptCommonJS构建来源已验证近 30 天下载 1.8万

使用 Amazon Aurora DSQL 的 CLI 工具

中文使用文档
文档目录15 节
  1. 概览
  2. 安装
  3. 快速启动
  4. 图标
  5. 验证Schema
  6. 转变移徙
  7. 林特移徙
  8. 全能移动
  9. 递增移徙
  10. 处理不支持的语句
  11. Prisma Schema 要求
  12. 示例
  13. 额外资源
  14. 警卫
  15. 许可证

奥罗拉 DSQL 用于 Prisma 的工具

GitHub npm version License Discord chat

用于使用的 CLI 工具 Prisma ORM 软件 与 亚马逊·奥罗拉 DSQL。 。 。 .

概览

本套件提供:

  1. Schema 校验器 - 为DSQL兼容性验证 Prisma 计划
  2. 迁移变换器 - 使用 DSQL 兼容的 SQL 转换 Prisma 迁移 dsql-lint
  3. 迁移线条 - 检查 SQL 迁移的 DSQL 兼容性而不修改它们
  4. 全能迁移命令 - 一步步验证、生成和变换

奥罗拉DSQL有 特定的 PostgreSQL 兼容性限制。这些工具帮助您及早抓住问题,并实现所需转变的自动化.

安装

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

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

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

快速启动

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

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

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

图标

验证Schema

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

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

校验器检查什么

校验器从您的方案生成 SQL 和代表符兼容性检查 改为 dsql-lint --fix, (中文(简体) ), 改变迁移的相同路径。 可变的 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 兼容 :

# 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 以应用 DSQL 兼容性修正。 见 dsql-lint 读取 为规则和转变的完整列表.

交易

Aurora DSQL允许每次交易一个 DDL 语句. transform 设置 DDL 单项发言 BEGIN编号 :COMMIT 区块 prisma migrate deploy,哪个 可以将文件运行为一个交易。 数据变化与 DDL 分开运行; 相邻数据变化共享交易。 将大数据变化分开 在DSQL范围内的迁移 交易限制。 。 。 .

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

拆分产生一个咨询: 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 兼容性而不应用修正 :

npx aurora-dsql-prisma lint migration.sql

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

全能移动

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

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

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

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

递增移徙

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

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

这需要 prisma.config.ts 提供数据库证书。 见 实例 (a) 执行工作.

处理不支持的语句

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

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

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

Prisma Schema 要求

当使用 Aurora DSQL 时:

  1. 选择关系模式数字 :

    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数字 :

    model User {
      id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
    }
    
  3. 禁用咨询锁定 - 迁移时:

    PRISMA_SCHEMA_DISABLE_ADVISORY_LOCK=1 npx prisma migrate deploy
    

Aurora DSQL SQL 兼容性细节的完整列表,请参见: PostgreSQL 兼容性参考。 。 。 .

示例

见 实例/技术应用/ 包括:

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

额外资源

警卫

见 捐款 更多信息.

许可证

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

版本与发布记录

@aws/aurora-dsql-prisma-tools 共发布 4 个版本,首次发布于 2026/02/03;过去 12 个月发布了 4 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.1.4latest2026/10/1326 天前
0.1.32026/09/191 个月前
0.1.22026/05/145 个月前
0.1.02026/02/039 个月前

关于 @aws/aurora-dsql-prisma-tools 的常见问题

@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 和提交记录判断。