Skip to content

L29. 云端数据库:Neon 与 Upstash

Vibe Coding 宣言:数据是石油。你总不想把石油存在自家地下室吧?

0. 为什么这一课至关重要? (Why It Matters)

  • Serverless Database:不需要自己买服务器装 MySQL/Redis。按量付费,不用不花钱。
  • Postgres (Neon):世界上最先进的开源关系型数据库。Neon 让它变成了 Serverless。
  • Redis (Upstash):最快的键值存储。Upstash 也是 Serverless 的。

1. 目标 (Goal)

注册并连接 Neon (Postgres)Upstash (Redis),并在代码中使用它们。

2. 核心概念/装备/指令 (The Core)

2.1 Connection String (The Key)

连接数据库的唯一凭证。

  • postgres://user:password@host:port/dbname
  • rediss://default:password@host:port

2.2 Serverless (The Model)

不需要管服务器在哪,不需要管 CPU 多少。只管存数据,它自动扩容。

3. 实战演练 (Action)

Step 1: 注册 Neon

  1. neon.tech 用 GitHub 登录。
  2. 创建项目。
  3. 复制 Connection String

Step 2: 注册 Upstash

  1. upstash.com 用 GitHub 登录。
  2. 创建 Redis 数据库。
  3. 复制 UPSTASH_REDIS_REST_URLUPSTASH_REDIS_REST_TOKEN

Step 3: 配置 Railway 环境变量

把上面拿到的 Key 填进 Railway 的 Variables 里。

  • DATABASE_URL: postgres://...
  • REDIS_URL: rediss://...

Step 4: 代码改造

python
# config.py
import os
DB_URL = os.getenv("DATABASE_URL")
python
# main.py (Postgres)
import psycopg2
conn = psycopg2.connect(DB_URL)
python
# main.py (Redis)
import redis
r = redis.from_url(os.getenv("REDIS_URL"))
r.set('foo', 'bar')

4. 常见问题 (FAQ - Vibe Style)

Q: 为什么不用 AWS RDS? A: 太贵且复杂。 个人开发者根本用不到那么高级的功能。Neon 免费且够用。

Q: 连接超时? A: 检查白名单。 有些数据库默认只允许特定 IP 连接。Neon 和 Upstash 默认是全网可连的(有密码保护)。

Q: 数据会被删吗? A: 免费版可能会休眠。 只要有人访问就会醒过来。数据不会丢。

5. 验收标准 (Definition of Done)

  1. 在本地代码里连上云端数据库,写入一条数据。
  2. 去 Neon/Upstash 控制台,能看到那条数据。
  3. Railway 上的服务也能读写云端数据库。

Next Mission: L30. 定时任务自动化:GitHub Actions

基于 Claude Code 构建