学习基础知识
免费注册并学习在 Neon 中进行数据库分支的基础知识。
你将学习到:
- 如何在控制台中查看和修改数据
- 为每位开发者创建一个独立的数据库副本
- 当准备开始新工作时,将分支重置为生产环境
相关主题
本教程将带你完成使用 Neon 作为 Postgres 数据库的第一步。你将探索 Neon 的对象层级结构,并学习数据库分支如何简化你的开发工作流。
关于分支
每个 branch 都是其父分支的完全隔离副本。我们建议为团队中的每个开发者创建一个长期分支,以保持一致的连接字符串。你可以在需要时将开发分支重置为生产环境。
注册后,你将从两个分支开始:
- 生产分支(默认分支),用于生产工作负载,配置了较大的计算资源(1-4 CU)
- 开发分支(作为生产分支的子分支创建),用于本地开发,配置了较小的计算资源(0.25-1 CU)
你可以随时更改这些配置,但通常生产环境需要比开发分支更多的计算资源。
1. 注册
如果你已经注册或是通过 Azure 来到 Neon,可以跳到 步骤 2。
如果你还没有注册,可以在这里免费注册: https://console.neon.tech/signup
支持邮箱、GitHub、Google 或其他合作账号登录。
关于免费和付费计划的详细内容,请参阅 Neon plans。
2. 在 Neon Console 中完成 Onboarding 重试 错误原因
注册后,你会被引导完成一些 onboarding 步骤,需要创建一个 Project。
在 Neon 中,一切都从 Project 开始。 Project 是顶层容器,包含分支、数据库和角色。通常,你应为应用的每个代码仓库创建一个 Project,这样你可以像管理代码分支一样管理数据库分支:生产、预发布、开发、新功能、预览等。
我们会为你创建两个分支:
- production:默认(主)分支,托管数据库、角色和计算资源,你的应用可以直接连接
- development:作为 production 的子分支,为你的开发工作准备
此时,如果你想直接开始把 Neon 接入工具链,可以跳到 第 2 天 - 将 Neon 连接到你的工具。如果你想更详细了解控制台和分支功能,可以继续往下。
3. 添加示例数据
在 SQL Editor 中,你可以直接对数据库运行查询,还能访问更高级功能,比如 Time Travel 和 Explain and Analyze。
首次打开 SQL Editor 时,编辑器会包含占位 SQL 命令,用来创建并填充一个名为 playing_with_neon
的示例表。点击 Run 来创建该表。
你运行的每条查询都会自动保存,并附带 AI 生成的描述,方便后续查找。例如,上述示例表的创建会保存为“在 Neon 中创建并填充示例表”。
如果你喜欢用命令行,并且已安装 psql,可以运行:
CREATE TABLE IF NOT EXISTS playing_with_neon(id SERIAL PRIMARY KEY, name TEXT NOT NULL, value REAL);
INSERT INTO playing_with_neon(name, value)
SELECT LEFT(md5(i::TEXT), 10), random() FROM generate_series(1, 10) s(i);
这样,默认的 production 分支就有了数据表。
4. 试用 AI Assistant
在 SQL Editor 中点击右上角的 AI Assistant,输入自然语言提示即可生成 SQL 查询。例如:
- Add three more rows to the playing_with_neon table with tech company names
- Show me the highest value in the table
- Calculate the average value grouped by the first letter of the name
AI Assistant 会生成类似:
INSERT INTO public.playing_with_neon (name, value) VALUES
('Google', 1000.5),
('Apple', 1200.75),
('Microsoft', 950.25);
并保存为“在 playing_with_neon 表中添加科技公司数据”。
更多详情参见 SQL Editor 文档。
5. 在控制台中查看和修改数据
进入 Tables 页面(基于 Drizzle Studio),你可以可视化地管理数据:新增、更新、删除记录,筛选数据,增删列,删除或清空表,导出 JSON/CSV。
详细操作请参考 Managing your data with interactive tables。
6. 使用开发分支
开发分支是 production 的隔离副本。我们可以通过 Neon CLI 来管理分支并修改 schema。
安装 CLI:
- macOS:
brew install neonctl
- 其他平台:
npm install -g neonctl
- macOS:
- 登录 Neon:
neon auth
- 查看分支:
neon branches list
7. 做一些 schema 修改
先把 development 分支与 production 同步:
neon branches reset development --parent
然后在 development 中修改表:
ALTER TABLE playing_with_neon ADD COLUMN description TEXT;
CREATE INDEX idx_playing_with_neon_description ON playing_with_neon (description);
INSERT INTO playing_with_neon (name, description)
VALUES ('Your dev branch', 'Exploring schema changes in the dev branch');
查询表可以看到新的列和数据。
8. 使用 Schema Diff 检查更改
Schema Diff 用于对比分支间的 schema 差异,类似 GitHub 的代码对比工具。这样你能确认开发分支的更改没有影响到生产分支。
Schema Diff 更常见的用途是为 schema migrations 做准备。虽然 Neon 本身不提供迁移工具,但你可以使用 Drizzle 或 Prisma 等 ORM 来高效管理迁移。
9. 将开发分支重置为生产
当完成实验后,可以将开发分支重置为生产:
neon branches reset development --parent
这会丢弃所有更改,让开发分支恢复到与生产相同的状态。类似于 git reset --hard parent
。
适用场景:
- 功能完成并合并后:重置开发分支以开始下一个功能
- 需要放弃更改时:快速恢复到稳定状态
- 作为 CI/CD 自动化的一部分:自动在功能关闭或开始时重置分支
更多内容见 Day 3 - Branching workflows。
要不要我帮你把这篇翻译整理成 结构化的分步骤教程(比如清单或表格形式),方便你直接使用?