Neon
Neon 是一个开源的 PostgreSQL 数据库,支持云原生、边缘计算、Serverless 等场景。
ShipAny 已集成 Neon,按照下面的步骤快速接入。
快速开始
注册 Neon 账号,登录 管理后台,点击 New Project 按钮,创建一个项目。
进入上一步创建的数据库,点击 Connect 按钮,复制数据库连接地址。

在终端执行复制的命令,测试数据库连接是否正常。
psql 'postgresql://neondb_owner:xxxxxx@xxx.neon.tech/neondb?sslmode=require&channel_binding=require'Neon 数据库的 Database URL 为:
postgresql://neondb_owner:xxxxxx@xxx.neon.tech/neondb?sslmode=require&channel_binding=require复制上一步设置的数据库 Database URL。
在项目的环境变量文件中,填入 Neon 数据库相关的配置。
- 本地开发环境变量文件
.env.development - 生产环境变量文件
.env.production - Cloudflare Workers 环境变量文件
wrangler.toml
DATABASE_PROVIDER = "postgresql"
DATABASE_URL = "neon-database-url"
DB_SCHEMA_FILE = "./src/config/db/schema.postgres.ts"
DB_MIGRATIONS_OUT = "./src/config/db/migrations"- DATABASE_PROVIDER,必填,固定值
postgresql - DATABASE_URL,必填,填 Neon 数据库的
Database URL - DB_SCHEMA_FILE,必填,固定值
./src/config/db/schema.postgres.ts - DB_MIGRATIONS_OUT,选填,数据库迁移文件输出路径,默认值
./src/config/db/migrations,可以根据数据库类型选择不同的输出路径
使用 Neon 数据库时,数据表结构定义在 ./src/config/db/schema.postgres.ts 文件中,你需要导出这个文件的数据表。
打开 ./src/config/db/schema.ts 文件,修改内容为:
export * from './schema.postgres';执行以下命令,迁移数据表
pnpm db:generate
pnpm db:migrate你可以在 Neon 管理后台 管理数据库,也可以在本地执行命令:
pnpm db:studio打开数据库管理面板。
自定义
修改数据表
如果你需要新增数据表,或者修改数据表字段,可以打开 ./src/config/db/schema.postgres.ts 文件,修改数据表结构。
修改完成后,执行以下命令,迁移数据表
pnpm db:generate
pnpm db:migrate修改数据库连接
如果你需要修改数据表连接参数,比如配置自定义选项、连接池等,可以修改 ./src/core/db/postgres.ts 文件中的逻辑。
在进行数据操作时,默认使用的是 ./src/core/db/index.ts 导出的 db() 对象,导出类型是 any,在某些情况下,可能会缺乏类型提示。
import { db } from '@/core/db';
import { user } from '@/config/db/schema';
const [result] = await db().select().from(user).limit(1);如果你希望使用强类型的数据库对象,可以在操作数据时,使用以下方式获取数据库对象:
import { dbPostgres } from '@/core/db';
import { user } from '@/config/db/schema';
const [result] = await dbPostgres().select().from(user).limit(1);或者:
import { getPostgresDb } from '@/core/db/postgres';
import { user } from '@/config/db/schema';
const [result] = await getPostgresDb().select().from(user).limit(1);部署到 Cloudflare Workers
Neon 数据库支持部署到 Cloudflare Workers,也支持使用 Hyperdrive 加速数据库访问。
使用 Hyperdrive 加速数据库访问的配置参考:配置 Hyperdrive。
在 Cloudflare Workers 部署项目使用 Neon 数据库的 wrangler.toml 部分内容参考:
[[hyperdrive]]
binding = "HYPERDRIVE"
id = "your-hyperdrive-config-id"
localConnectionString = "postgresql://neondb_owner:xxxxxx@xxx.neon.tech/neondb?sslmode=require&channel_binding=require"
[vars]
DATABASE_PROVIDER = "postgresql"
DATABASE_URL = "postgresql://neondb_owner:xxxxxx@xxx.neon.tech/neondb?sslmode=require&channel_binding=require"