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/dbnamerediss://default:password@host:port
2.2 Serverless (The Model)
不需要管服务器在哪,不需要管 CPU 多少。只管存数据,它自动扩容。
3. 实战演练 (Action)
Step 1: 注册 Neon
- neon.tech 用 GitHub 登录。
- 创建项目。
- 复制
Connection String。
Step 2: 注册 Upstash
- upstash.com 用 GitHub 登录。
- 创建 Redis 数据库。
- 复制
UPSTASH_REDIS_REST_URL和UPSTASH_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)
- 在本地代码里连上云端数据库,写入一条数据。
- 去 Neon/Upstash 控制台,能看到那条数据。
- Railway 上的服务也能读写云端数据库。
Next Mission: L30. 定时任务自动化:GitHub Actions