NocoDB指南:65k星Airtable开源替代,把数据库直接变成表格界面

项目:nocodb/nocodb | 星数:65382 | 语言:TypeScript | 协议:AGPL | GitHub仓库

更新日期:2026-10-30 · 作者:CodeArts 编辑部

运营要一个"表格系统",但我实在不想再写一遍 CRUD

市场部要给活动报名建一个管理后台:录名单、改状态、导出、按渠道统计。这类需求在过去我要写三四天:建表、写接口、写列表页、写详情表单、加导出。后来我用 NocoDB 二十分钟做完了——本质上是把数据库表直接变成一个可操作的电子表格界面,还自带 REST API。

NocoDB 是 65382 星的 Airtable 开源替代,AGPL 协议,TypeScript 编写。它不自己定义存储格式,而是直接接管你的 MySQL/Postgres/SQLite,所以数据始终是普通的关系表,随时可以用 SQL 或别的工具访问——这一点是我选它而不是 Airtable 的核心原因,不锁数据。

它到底做了什么

能力说明
表结构可视化直接在界面上建表、加字段、改类型
多视图网格、看板、日历、画廊、表单
自动 REST API每张表自动生成 CRUD 接口与 Swagger 文档
细粒度权限按用户/角色限定可读写哪些行与列
Webhook 与公式数据变更触发回调,字段支持公式与关联

最实用的其实是最后两条的组合:表单视图收数据 → 公式字段自动算状态 → Webhook 推送到企业微信。整个流程不写一行后端代码。

两种部署方式

# 方式一:Docker + 内置 SQLite(最简单)
docker run -d \
  --name noco \
  -v "$(pwd)"/nocodb:/usr/app/data/ \
  -p 8080:8080 \
  nocodb/nocodb:latest

# 方式二:Docker + 外部 Postgres(生产推荐)
docker run -d \
  --name noco \
  -v "$(pwd)"/nocodb:/usr/app/data/ \
  -p 8080:8080 \
  -e NC_DB="pg://host.docker.internal:5432?u=postgres&p=你的密码&d=nocodb" \
  -e NC_AUTH_JWT_SECRET="请填入一串随机字符串" \
  nocodb/nocodb:latest

访问 http://localhost:8080/dashboard 完成初始化。注意 NC_AUTH_JWT_SECRET 一定要自己指定并保存好——它是会话签名密钥,不设置会导致重启后登录态异常。

接入已有的业务库:最值钱的用法

真正让我留着它的功能是「外连数据库」。它可以接管一个已经存在的 Postgres 库,把现有表映射成可编辑界面,而不改变原来的表结构。这意味着:

  1. 老系统里的订单表,无需开发接口,直接给客服一个带筛选和导出的界面;
  2. 加字段时在 NocoDB 里点一下,底层就是 ALTER TABLE;
  3. 老系统照常读写,NocoDB 只是另一层视图。

但要注意两点:一是需要给 NocoDB 一个带一定权限的数据库账号,别用超级用户;二是它会在库里建少量元数据表,做好命名前缀约定,免得和业务表混在一起。

和竞品的取舍

工具数据存储适合
NocoDB你的关系库,可外连已有数据库、需要 API
Baserow自有存储,也支持外部源偏 Airtable 体验
TeablePostgres大数据量、多维表
Appsmith / ToolJet不自带存储,做前端需要复杂交互的应用

如果需求是"业务同学要一个能改数据的表格界面",NocoDB 最快。如果是"我要做一个有复杂交互和自定义逻辑的内部系统",NocoDB 会从一开始就跟你较劲,应该选 Appsmith 一类低代码工具。

上线前要处理的三件事

权限。默认角色权限很宽,务必按角色细分:只读、可编辑、可删。数据表一旦删了很难恢复。

备份。如果外连的是你自己的库,备份沿用原有策略;如果用内置 SQLite,务必定期备份挂载目录,或直接换成 Postgres。

暴露面。面板和 API 挂在公网上时,加上反向代理与 HTTPS,并关闭不必要的公开分享链接。分享链接默认可能允许匿名访问,这点和表里的数据敏感度直接相关。

常见问题

NocoDB 会把数据存成它自己的格式吗?

不会。它操作的就是普通关系表,数据在 MySQL/Postgres/SQLite 里,随时可以用 SQL、ORM 或其他 BI 工具访问。它只额外建少量元数据表用于记录视图与权限配置。

能从 Airtable 迁移过来吗?

可以。支持导入 Airtable 的 CSV/基础数据,也支持从 Airtable API 一次性同步表结构与记录。字段类型会有少量差异(如 Airtable 的附件、公式字段),需要迁移后手工核对。

几个人的团队适合自建?

3 到 50 人的内部数据管理都合适。超过这个规模,权限模型和性能会更依赖底层数据库本身,建议把数据放到独立 Postgres 上并做好索引,而不是用内置 SQLite。