@defrex/autobuild-postgres-store

中文文档
1.6.0发布于 2026/11/12Apache-2.0TypeScriptES Module近 30 天下载 3298
中文使用文档
文档目录3 节
  1. 设置
  2. 公共入境点
  3. 货币

@defrex/autobuild-postgres-store

使用 PostgreSQL 和 一种 S3相容对象商店或Vercel Blob. 这是一个单独的软件包: 安装 页:1 @defrex/autobuild CLI 不安装其数据库/blob 提供者 依赖性。 嵌入适配器的项目直接添加:

bun add @defrex/autobuild-postgres-store

只有这个包 src/ 树和此 README 发布到 npm: 每 通过清单进口的已公布包装的消费者 exports 财务报告和审定财务报表 bin,所有生活在 src/名单 files 允许列表 把焦油球钉在那个位置上 bun tools/publish-contents-check.ts 存储器中 check 闸门失效了,其他东西会来 这个 拒绝默认允许列表是故意的: 此文件中的未来顶级文件 软件包(抓取脚本、现场测试固定、多腾v文件、编辑器) 除非许可证和支票 一起更新。 这个 src/testing/ 帮助者是只测试的表面——他们的 唯一的消费者是现场测试套房——并且被排除于柏油球之外 页:1 !src/testing/** 否定(AUT-500),所以水面通道不会重新升起 他们.

设置

要从主机部署的自订出单运行迁移,请选择 显示于 GitHub 发布, (中文(简体) ), 然后在专用的检出中获取并安装精确的寄存器修订版:

git clone --depth 1 --branch v0.6.0 --single-branch https://github.com/defrex/autobuild.git autobuild-v0.6.0
cd autobuild-v0.6.0
bun install --frozen-lockfile
DATABASE_URL=postgres://… bun run postgres:migrate

替换 v0.6.0 与所选的释放标签。 所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出所出. 适配器读传统 DATABASE_URL,这是Vercel的尼昂和 后格子存储集成注入; 设置 AB_POSTGRES_URL 以覆盖它 当然. Schema 诊断指根 postgres:migrate 在此被绑定的脚本 释放检查。 数据库身份需要权限来创建表格, 和迁移过程中的迁移标记以及选择、插入、, 更新,并删除运行时产生的表格。 罚单计划有它的 拥有版本/ 检查和调值标记, 因此迁移一个已有的 BuildStore v1 数据库 增加项目范围票、评论和屏蔽器,而不替换 已建立 BuildStore 标记。 对失踪的、年长的/更新的或 校验和匹配的计程器失败; 计程器的创建绝不是隐含的 .

流行的遗赠票v1升级 也需要运行服务blob 后端、证书、访问模式和前缀。 具有环境意识的移徙 CLI 打开 blobs 懒散读取每个注册项目选中的有效 配置当必须推断所有权时。 未注册的项目 运行/配置参考文件不提出索赔。 无法读取的选定配置停止不变; 恢复他们的字节或分配所有遗留的团队 解锁迁移. 完整的注册所有者任务避免不相关的配置读取. 新鲜的安装,空出-v1升级和v2再运行仍然只有SQL. 已放行的主 v9 升级导入 AB_WEB_REPOSITORIES 一次在同一个里面 交易。 失败时,主要促进和登记进口回滚 门票 拥有者 projects add 财务报告和审定财务报表 tickets assign-team 独立拖带 它们的注册/回收日记在v9上,因此在回滚后仍然可以使用. 模棱两可的队伍不变地停了下来,由业主解决 ab-hosted-store tickets assign-team TEAM REPOSITORY --user IDENTITY 在此之前 重新运行迁移。 见托管服务迁移程序.

目前每个标记的 DDL —— 构建商店、 门票和认证—— 是不可改变的 一旦一个数据库安装了它 部署的数据库携带了精确的DDL 校验和 , 并编辑 DDL 。 每个 因此,计划改变是一个新版本——四步规则:冻结 上一个 DDL 逐字记录及其校验和, 在 migratePostgres,并更新已承诺的针入 schema-guard.test.ts编辑到当前任何 DDL 或版本,但无 匹配 pin 更新失败 集成套件, 并带有给这四个命名的消息 步骤.

指针是绊线,不是强制接合 它不能机械 强迫版本起落: 被放出的唯一承诺记录 校验和, 以及编辑当前 DDL 且只重新打入 pin 的作者 校验和 — 保留被绑定的版本和导出版本常数 不变——通过整合套间. 然后,部署的数据库仍然携带 dDL 已更改的版本的编辑前校验和以及下一个版本 openPostgresBuildStore 或者说 migratePostgres 诊断命名失败 那个原因。 每一次计划变化都要遵循所有四个步骤;迁移 诊断可以抓住事后的快捷键.

公共入境点

软件包暴露出四个子路径, 每个子路径以源模块命名 出版:

  • @defrex/autobuild-postgres-store - 完全适配器表面: openPostgresBuildStore, (中文(简体) ), openPostgresBuildStoreFromEnv, (中文(简体) ), migratePostgres票和杂货店.
  • @defrex/autobuild-postgres-store/env —— URL 解析助手 (单位:千美元)resolvePostgresUrl, (中文(简体) ), describePostgresTarget) (中文(简体) ).
  • @defrex/autobuild-postgres-store/schema - DDL计划、版本和校验和 常数、计划断言和 migratePostgres。 。 。 .
  • @defrex/autobuild-postgres-store/store —— 说 openPostgresBuildStore,则 PostgresBuildStore 班级, PostgresBuildStoreOptions,以及 EVENT_WAIT_POLL_MS。 。 。 .

货币

身份行在被锁定之前安全创建冲突 工作时 同步寄存器保证为一元并全部返回单元 存储记录。 同时尝试创建同样的结构 slock 生成一个 赢家; 所有其他呼叫者收到 build "<slug>" already exists 而不是说 原始 PostgreSQL 独有性错误.

import { openPostgresBuildStoreFromEnv } from '@defrex/autobuild-postgres-store'

const store = await openPostgresBuildStoreFromEnv(process.env)

S3 证书需要 GetObject 财务报告和审定财务报表 PutObject 在配置的桶/前缀上. 只有404号物品库被视为缺席;授权和服务错误 宣传。 Vercel 支持 Blob 读写符或 Vercel OIDC 与它的 Blob 商店 ID 配对 .

PostgresTicketDatabase.source({ repo, teamKey, lifecycle, claimedState?, createState? }) 创建请求的入票源视图。 项目的部署用品 身份、可读标识前缀和生命周期名称。 车票 以 PostgreSQL 存储 text 并且未变换返回.

关于此适配器经认证的HTTP部署,请参见: @defrex/autobuild-hosted-store-service 指南。 。 。 .

版本与发布记录

@defrex/autobuild-postgres-store 共发布 23 个版本,首次发布于 2026/09/17;过去 12 个月发布了 23 个版本。

版本发布日期距今
1.6.0latest2026/11/12今天
1.5.02026/11/092 天前
1.4.22026/11/048 天前
1.4.12026/11/038 天前
1.4.02026/11/039 天前
1.3.02026/10/2913 天前

其他发布通道:beta → 1.0.0-beta.4。

关于 @defrex/autobuild-postgres-store 的常见问题

如何安装 @defrex/autobuild-postgres-store?

在项目目录运行 npm install @defrex/autobuild-postgres-store,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 ab-postgres-store,可以用 npx ab-postgres-store 直接运行。

@defrex/autobuild-postgres-store 支持 TypeScript 吗?

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

@defrex/autobuild-postgres-store 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@defrex/autobuild-postgres-store 可以商用吗?

@defrex/autobuild-postgres-store 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@defrex/autobuild-postgres-store 的下载量有多少?

根据 npm 官方下载统计,@defrex/autobuild-postgres-store 在 2026/10/12 – 2026/11/10 这 30 天内被下载 3,298 次,日均约 110 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@defrex/autobuild-postgres-store 还在维护吗?

最新版本 1.6.0 发布于 2026/11/12(今天);至今共发布 23 个版本,其中过去 12 个月发布了 23 个;首次发布于 2026/09/17。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。