跳到正文
cccskills
免费在 GitHub 公开

cloudflare-hyperdrive

Cloudflare Hyperdrive for Workers-to-database connections with pooling and caching. Use for PostgreSQL/MySQL, Drizzle/Prisma, or encountering pool errors, TLS issues, connection refused.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(20)

  • SKILL.md7.2 KB
  • references/connection-pooling.md11.5 KB
  • references/drizzle-integration.md12.2 KB
  • references/prisma-integration.md12.8 KB
  • references/query-caching.md12.2 KB
  • references/setup-guide.md2.6 KB
  • references/supported-databases.md11.1 KB
  • references/tls-ssl-setup.md10.5 KB
  • references/troubleshooting.md13.3 KB
  • references/wrangler-commands.md10.6 KB
  • scripts/check-versions.sh3.4 KB
  • templates/drizzle-mysql.ts2.2 KB
  • templates/drizzle-postgres.ts2.1 KB
  • templates/local-dev-setup.sh2.4 KB
  • templates/mysql2-basic.ts2.0 KB
  • templates/postgres-basic.ts1.7 KB
  • templates/postgres-js.ts2.6 KB
  • templates/postgres-pool.ts2.4 KB
  • templates/prisma-postgres.ts3.3 KB
  • templates/wrangler-hyperdrive-config.jsonc1.0 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Cloudflare Hyperdrive

Status: Production Ready ✅ | Last Verified: 2025-11-18


What Is Hyperdrive?

Connect Workers to existing PostgreSQL/MySQL databases:

  • Global connection pooling
  • Query caching
  • Reduced latency
  • Works with node-postgres, postgres.js, mysql2

Quick Start (5 Minutes)

1. Create Hyperdrive Config

bunx wrangler hyperdrive create my-db \
  --connection-string="postgres://user:pass@host:5432/database"

Save the id!

2. Configure Binding

{
  "name": "my-worker",
  "main": "src/index.ts",
  "compatibility_date": "2024-09-23",
  "compatibility_flags": ["nodejs_compat"],  // REQUIRED!
  "hyperdrive": [
    {
      "binding": "HYPERDRIVE",
      "id": "<ID_FROM_STEP_1>"
    }
  ]
}

3. Install Driver

bun add pg  # or postgres, or mysql2

4. Query Database

import { Client } from 'pg';

export default {
  async fetch(request, env, ctx) {
    const client = new Client({ connectionString: env.HYPERDRIVE.connectionString });
    await client.connect();

    const result = await client.query('SELECT * FROM users LIMIT 10');
    await client.end();

    return Response.json(result.rows);
  }
};

Load references/setup-guide.md for complete walkthrough.


Critical Rules

Always Do ✅

  1. Enable nodejs_compat flag (required!)
  2. Use env.HYPERDRIVE.connectionString (not original DB string)
  3. Close connections after queries
  4. Handle errors explicitly
  5. Use connection pooling (built-in)
  6. Test locally with wrangler dev
  7. Monitor query performance
  8. Use prepared statements
  9. Enable query caching (automatic)
  10. Secure connection strings (use secrets)

Never Do ❌

  1. Never skip nodejs_compat (drivers won't work)
  2. Never use original DB connection string in Workers
  3. Never leave connections open (pool exhaustion)
  4. Never skip error handling (DB can fail)
  5. Never hardcode credentials in code
  6. Never exceed connection limits
  7. Never use eval/Function (blocked in Workers)
  8. Never skip TLS for production DBs
  9. Never use blocking queries (Worker timeout)
  10. Never expose DB errors to users

Database Drivers

PostgreSQL (node-postgres)

import { Client } from 'pg';

const client = new Client({ connectionString: env.HYPERDRIVE.connectionString });
await client.connect();
const result = await client.query('SELECT * FROM users');
await client.end();

PostgreSQL (postgres.js)

import postgres from 'postgres';

const sql = postgres(env.HYPERDRIVE.connectionString);
const users = await sql`SELECT * FROM users`;

MySQL

import mysql from 'mysql2/promise';

const connection = await mysql.createConnection(env.HYPERDRIVE.connectionString);
const [rows] = await connection.execute('SELECT * FROM users');
await connection.end();

With Drizzle ORM

import { drizzle } from 'drizzle-orm/node-postgres';
import { Client } from 'pg';

const client = new Client({ connectionString: env.HYPERDRIVE.connectionString });
await client.connect();

const db = drizzle(client);
const users = await db.select().from(usersTable);

await client.end();

Common Use Cases

Use Case 1: Read-Only Queries

export default {
  async fetch(request, env, ctx) {
    const client = new Client({ connectionString: env.HYPERDRIVE.connectionString });
    await client.connect();

    const users = await client.query('SELECT * FROM users WHERE active = true');
    await client.end();

    return Response.json(users.rows);
  }
};

Use Case 2: Parameterized Queries

const userId = new URL(request.url).searchParams.get('id');

const client = new Client({ connectionString: env.HYPERDRIVE.connectionString });
await client.connect();

const result = await client.query(
  'SELECT * FROM users WHERE id = $1',
  [userId]
);

await client.end();

Use Case 3: Transactions

const client = new Client({ connectionString: env.HYPERDRIVE.connectionString });
await client.connect();

try {
  await client.query('BEGIN');
  await client.query('UPDATE accounts SET balance = balance - 100 WHERE id = $1', [1]);
  await client.query('UPDATE accounts SET balance = balance + 100 WHERE id = $1', [2]);
  await client.query('COMMIT');
} catch (e) {
  await client.query('ROLLBACK');
  throw e;
} finally {
  await client.end();
}

Supported Databases

PostgreSQL:

  • Amazon RDS
  • Amazon Aurora
  • Neon
  • Supabase
  • Railway
  • Render
  • DigitalOcean
  • Any PostgreSQL 11+

MySQL:

  • Amazon RDS
  • Amazon Aurora
  • PlanetScale
  • Any MySQL 5.7+

Official Documentation


Bundled Resources

References (references/):

  • setup-guide.md - Complete setup walkthrough (create config, bind, query)
  • connection-pooling.md - Connection pool configuration and best practices
  • query-caching.md - Query caching strategies and optimization
  • drizzle-integration.md - Drizzle ORM integration patterns
  • prisma-integration.md - Prisma ORM integration patterns
  • supported-databases.md - Complete list of supported PostgreSQL and MySQL providers
  • tls-ssl-setup.md - TLS/SSL configuration for secure connections
  • troubleshooting.md - Common issues and solutions
  • wrangler-commands.md - Complete wrangler CLI commands for Hyperdrive

Templates (templates/):

  • postgres-basic.ts - Basic PostgreSQL with node-postgres
  • postgres-js.ts - PostgreSQL with postgres.js driver
  • postgres-pool.ts - PostgreSQL with connection pooling
  • mysql2-basic.ts - MySQL with mysql2 driver
  • drizzle-postgres.ts - Drizzle ORM with PostgreSQL
  • drizzle-mysql.ts - Drizzle ORM with MySQL
  • prisma-postgres.ts - Prisma ORM with PostgreSQL
  • local-dev-setup.sh - Local development setup script
  • wrangler-hyperdrive-config.jsonc - Wrangler configuration example

Questions? Issues?

  1. Check references/setup-guide.md for complete setup
  2. Verify nodejs_compat flag enabled
  3. Ensure using env.HYPERDRIVE.connectionString
  4. Check connection properly closed

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

100+ animated React components (Aceternity UI) for Next.js with Tailwind. Use for hero sections, parallax, 3D effects, or encountering animation, shadcn CLI integration errors.

中文简介正在准备中。当前显示原文说明。

secondsky/claude-skills2312026年10月19日 更新

Secure API authentication with JWT, OAuth 2.0, API keys. Use for authentication systems, third-party integrations, service-to-service communication, or encountering token management, security headers, auth flow errors.

中文简介正在准备中。当前显示原文说明。

secondsky/claude-skills2312026年10月19日 更新

Creates comprehensive API changelogs documenting breaking changes, deprecations, and migration strategies for API consumers. Use when managing API versions, communicating breaking changes, or creating upgrade guides.

中文简介正在准备中。当前显示原文说明。

secondsky/claude-skills2312026年10月19日 更新

Verifies API contracts between services using consumer-driven contracts, schema validation, and tools like Pact. Use when testing microservices communication, preventing breaking changes, or validating OpenAPI specifications.

中文简介正在准备中。当前显示原文说明。

secondsky/claude-skills2312026年10月19日 更新

Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.

中文简介正在准备中。当前显示原文说明。

secondsky/claude-skills2312026年10月19日 更新

Implements standardized API error responses with proper status codes, logging, and user-friendly messages. Use when building production APIs, implementing error recovery patterns, or integrating error monitoring services.

中文简介正在准备中。当前显示原文说明。

secondsky/claude-skills2312026年10月19日 更新

查看 secondsky 的全部技能

报告此技能的问题