文档数据库

Deno 数据库选型

在 PostgreSQL、SQLite、MongoDB、Redis、Supabase 与 Deno KV 之间选择

Deno 能通过 npm 兼容层使用成熟数据库驱动,也能使用 Web/JSR 生态模块。选择依据应是数据模型、事务和部署环境,而不是“哪个包最像 Deno”。

数据层适合Deno 接入
PostgreSQL关系数据、事务、复杂查询npm:postgresnpm:pg、Drizzle、Kysely
SQLite单机、嵌入式、测试、轻服务node:sqlite 或兼容库;核对运行版本
MongoDB文档模型、既有 Mongo 体系官方 npm driver / Mongoose
Rediscache、rate limit、短期状态官方 npm client 或兼容服务
Supabase托管 Postgres + Auth/Storage官方 npm SDK 或直接 Postgres
Deno KV简单 key-value、原子操作、Deno 平台集成Deno.openKv();先核对部署平台支持

通用连接边界

deno run \
  --allow-env=DATABASE_URL \
  --allow-net=db.example.com:5432 \
  src/main.ts
  • 在模块或应用生命周期内复用连接池,不要每次请求新建。
  • 密钥只来自环境或 secret store,不进入源码、日志和错误响应。
  • migration 是发布步骤;应用启动时自动改 schema 会放大并发风险。
  • serverless 实例会并发扩容,连接池上限要结合实例数计算。
  • 测试至少覆盖连接失败、事务回滚、唯一约束与超时。

新 Deno Deploy 提供 PostgreSQL 关联、timeline 隔离和 Deno KV,但不同 timeline 的数据与迁移策略必须单独设计。详见 Deploy 数据与 Cron

官方参考:Connecting to databasesDeno database examples

输入关键词搜索全部文档。