SuperAPI AI 工具集

netlify-database

部署与运维

查看项目

更新于 10-16 03:47

技能介绍

用途:为 Netlify 应用提供零配置托管 Postgres。安装 @netlify/database,在 netlify/database/migrations/ 下编写迁移文件,部署时 Netlify 自动创建数据库并应用迁移,可从 Functions、Edge Functions、构建和 Agent Runners 中查询。

主要能力:getDatabase() 返回带 sql 与 pool 的客户端,自动按运行时选择连接;支持参数化查询、类型化行、stream() 与 chunked(n) 流式读取,以及 sql.identifier、sql.values、sql.default、sql.raw、sql.unsafe 等辅助方法。事务需使用 db.pool 并在同一连接上执行 BEGIN/COMMIT。也可用 getConnectionString() 配合自有驱动或 ORM。

Drizzle ORM:需从 @beta 安装 @netlify/database 与 drizzle-orm@beta、drizzle-kit@beta;drizzle.config.ts 的 out 必须设为 netlify/database/migrations。使用 drizzle-orm/netlify-db 适配器。编辑 schema 后运行 npx drizzle-kit generate 生成迁移。禁止对 Netlify 托管数据库运行 drizzle-kit push 或 migrate。

迁移:文件放在 netlify/database/migrations/,命名 <number>_<slug>,按字典序应用。生产部署在发布前应用,失败则阻止发布;部署预览每次部署前应用;本地需手动运行 netlify database migrations apply。不要修改或删除已应用的迁移,避免乱序。

本地开发:netlify dev 或 @netlify/vite-plugin 启动本地数据库。常用命令包括 netlify database init、status、connect、migrations apply/new/pull/reset、reset。CLI 需 Node ≥ 20.12.2、Netlify CLI ≥ 26.0.0。

测试:@netlify/database-dev 提供 NetlifyDB 用于裸 Postgres 测试;@netlify/dev 提供完整 Netlify 环境。

限制:仅 Credit-based 计划可用,活跃数据库消耗计算与带宽积分,存储免费至 2026 年 7 月 1 日;仅 Team Owner 可删除数据库,Owner 与 Developer 可查看连接字符串;连接字符串含凭据,切勿提交。预览分支可能含生产数据与 PII,且预览链接公开。Lambda 兼容模式需显式传入 connectionString。从其他 Postgres 迁移存在短暂数据丢失窗口。