部署
Vercel
标准 Next.js 流程——在 Vercel 控制台导入仓库,配置环境变量(必填项见配置说明)后部署。数据库使用云端服务(PostgreSQL / MySQL / Turso),迁移单独执行:
pnpm db:generate && pnpm db:migrateDocker
仓库自带多阶段 Dockerfile(node:22-alpine、Next.js standalone 输出、端口 3000):
docker build -t my-app .
docker run -p 3000:3000 --env-file .env.production my-app
DATABASE_PROVIDER在构建时固化——schema 模板在镜像构建阶段选定。如需 PostgreSQL:
docker build --build-arg DATABASE_PROVIDER=postgres -t my-app .Cloudflare Workers
wrangler.jsonc 已预配 nodejs_compat 与 D1 数据库绑定:
{
"name": "shipany-next",
"compatibility_flags": ["nodejs_compat"],
"vars": { "DATABASE_PROVIDER": "d1" },
"d1_databases": [
{
"binding": "DB",
"database_name": "shipany-next",
"database_id": "...",
"migrations_dir": "drizzle"
}
]
}npx wrangler d1 create shipany-next # 把 database_id 填回 wrangler.jsonc
pnpm db:generate # D1 从 ./drizzle 目录应用迁移
npx wrangler deployWorkers 平台注意事项:
- TCP 连接不能跨请求复用——Postgres/MySQL 每个请求新建连接(连接池建议用 Hyperdrive)
- D1 的事务是模拟实现,并非真实事务