学习基础知识

免费注册并学习在 Neon 中进行数据库分支的基础知识。

你将学习到:

  • 如何在控制台中查看和修改数据
  • 为每位开发者创建一个独立的数据库副本
  • 当准备开始新工作时,将分支重置为生产环境

相关主题

本教程将带你完成使用 Neon 作为 Postgres 数据库的第一步。你将探索 Neon 的对象层级结构,并学习数据库分支如何简化你的开发工作流。

关于分支

每个 branch 都是其父分支的完全隔离副本。我们建议为团队中的每个开发者创建一个长期分支,以保持一致的连接字符串。你可以在需要时将开发分支重置为生产环境。

注册后,你将从两个分支开始:

  • 生产分支(默认分支),用于生产工作负载,配置了较大的计算资源(1-4 CU)
  • 开发分支(作为生产分支的子分支创建),用于本地开发,配置了较小的计算资源(0.25-1 CU)

你可以随时更改这些配置,但通常生产环境需要比开发分支更多的计算资源。


1. 注册

注册账号 - 图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 TravelExplain and Analyze

首次打开 SQL Editor 时,编辑器会包含占位 SQL 命令,用来创建并填充一个名为 playing_with_neon 的示例表。点击 Run 来创建该表。

你运行的每条查询都会自动保存,并附带 AI 生成的描述,方便后续查找。例如,上述示例表的创建会保存为“在 Neon 中创建并填充示例表”。

如果你喜欢用命令行,并且已安装 psql,可以运行:

  1. CREATE TABLE IF NOT EXISTS playing_with_neon(id SERIAL PRIMARY KEY, name TEXT NOT NULL, value REAL);
  2. INSERT INTO playing_with_neon(name, value)
  3. 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 会生成类似:

  1. INSERT INTO public.playing_with_neon (name, value) VALUES
  2. ('Google', 1000.5),
  3. ('Apple', 1200.75),
  4. ('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
  • 登录 Neon:neon auth
  • 查看分支:neon branches list

7. 做一些 schema 修改

先把 development 分支与 production 同步:

  1. neon branches reset development --parent

然后在 development 中修改表:

  1. ALTER TABLE playing_with_neon ADD COLUMN description TEXT;
  2. CREATE INDEX idx_playing_with_neon_description ON playing_with_neon (description);
  3. INSERT INTO playing_with_neon (name, description)
  4. VALUES ('Your dev branch', 'Exploring schema changes in the dev branch');

查询表可以看到新的列和数据。


8. 使用 Schema Diff 检查更改

Schema Diff 用于对比分支间的 schema 差异,类似 GitHub 的代码对比工具。这样你能确认开发分支的更改没有影响到生产分支。

Schema Diff 更常见的用途是为 schema migrations 做准备。虽然 Neon 本身不提供迁移工具,但你可以使用 DrizzlePrisma 等 ORM 来高效管理迁移。


9. 将开发分支重置为生产

当完成实验后,可以将开发分支重置为生产:

  1. neon branches reset development --parent

这会丢弃所有更改,让开发分支恢复到与生产相同的状态。类似于 git reset --hard parent

适用场景:

  • 功能完成并合并后:重置开发分支以开始下一个功能
  • 需要放弃更改时:快速恢复到稳定状态
  • 作为 CI/CD 自动化的一部分:自动在功能关闭或开始时重置分支

更多内容见 Day 3 - Branching workflows


要不要我帮你把这篇翻译整理成 结构化的分步骤教程(比如清单或表格形式),方便你直接使用?