Skip to content
返回部署

使用 PlanetScale 部署

Serverless MySQL,分支、水平分片和全球复制。

平台进阶

为什么

PlanetScale 基于 Vitess(YouTube 使用),非阻塞 schema 变更、数据库分支预览和代理层连接池无限连接。平台即服务采用率 2024 年增长 24%,团队从虚拟机管理转向 git push 部署。

the cloud infrastructure market reached $330B in 2024, growing 22% year-over-year (Synergy Research),PaaS 层捕获了大多数新工作负载。

何时使用

需零停机迁移、分支和水平扩展的 MySQL 应用用 PlanetScale。需外键(不支持)时避免。

如何做

1. 创建 — pscale database create mydb 2. 分支 — pscale branch create dev main(DB 的 git) 3. 连接 — pscale connect mydb main --port 3309 4. 迁移 — 非阻塞,无表锁 5. 部署请求 — pscale deploy-request create dev main 6. 提升 — schema 变更应用到生产 7. Shell — pscale shell mydb main

示例

# 创建数据库和分支 pscale database create mydb --region us-east-1 pscale branch create preview main # 本地连接 pscale connect mydb preview --port 3309 # 现在 mysql -h 127.0.0.1 -P 3309 可用 # 部署 schema 变更 pscale deploy-request create preview main pscale deploy-request list mydb main pscale deploy-request deploy mydb main 1 # 连接字符串(service token 无需密码) mysql://user:pass@host:3306/mydb?ssl={"rejectUnauthorized":true}

常见问题

  • ⚠无外键 — PlanetScale 不强制 FK,应用逻辑处理
  • ⚠部署请求被拒 — schema 变更不兼容,pscale deploy-request show 查原因
  • ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致

最佳实践

  • ✓预览部署用数据库分支 — 每 PR 获自己 DB 分支
  • ✓所有 schema 变更用 pscale deploy-request — 审查、可逆、非阻塞
  • ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求

常见问题解答