Airtable的开源替代方案NocoDB

什么是 Airtable ?

Airtable 是新型的在线表格制作工具,不仅局限于表格,它还可以把文字、图片、链接、文档等各种资料整合在一起。是电子表格-数据库混合体,具有数据库的功能,但实际上还是电子表格。

什么是 REST API ?

REST API 也称为 RESTful API,是遵循 REST 架构规范的应用编程接口(APIWeb API),支持与 RESTful Web 服务进行交互。REST 是表述性状态传递的英文缩写(Representational State Transfer),由计算机科学家 Roy Fielding 在 2000 年提出。它的简单易用性,可扩展性,伸缩性受到广大 Web 开发者的喜爱。

什么是 GraphQL ?

GraphQL 是一种新的 API 标准,它提供了一种比 REST 更有效、更强大和更灵活的替代方案。作为 REST 的替代方案,GraphQL 允许开发人员构建相应的请求,从而通过单个 API 调用从多个数据源中提取数据。GraphQLFacebook 开发,并于 2012 年首次应用于移动应用,于 2015 年实现开源。

REST API 在之前的『 简约但绝不简单的Komga 』一文中已经遇到了,而 NocoDB 同时支持 REST APIGraphQL API

安装

数据库

通过 phpMyAdminMariaDB 10 中新建用户 nocodb,创建同名的库 nocodb 并授予所有权限。

10

如果使用 MariaDB 5,在创建 table 时会遇到下面👇这样的错误

1
2
CODE:
ER_TOO_MUCH_AUTO_TIMESTAMP_COLS

从而导致创建失败

安装镜像

在群晖上以 Docker 方式安装。

在注册表中搜索 nocodb ,选择第一个 nocodb/nocodb,版本选择 latest

docker 文件夹中,创建一个新文件夹,并将其命名为 nocodb

文件夹 装载路径 说明
docker/nocodb /usr/app/data 存放数据

端口

端口不冲突就行,这里用了 2380

本地端口 容器端口
2380 8080

环境

可变
NC_DB 数据库连接参数,mysql2://群晖IP:3307?u=用户&p=密码&d=表

MariaDB 5 默认的端口是 3306,MariaDB 10 默认的端口是 3307

所以根据前面的设置,连接参数应该是 mysql2://192.168.0.197:3307?u=nocodb&p=TWYQDFsgq9Ng&d=nocodb

运行

在浏览器中输入 http://群晖IP:2380,就看到欢迎界面

跳过欢迎界面之后

第一次需要注册,这个账号将成为管理员账号

密码至少有 8 个字母,其中包括 1 个大写字母、1 个数字和 1 个特殊字母

创建新项目

注册成功之后可以开始新建项目

输入项目名称,可以选择生成的 API 类型

建表

可以通过 + 号创建 table

输入表名,然后点 Submit

id 列是不能禁用的,

成功提交后,表格将创建并作为新选项卡打开。

单击表格右上角的 + 图标

弹出表单中可以填写列名、类型、长度等,其中类型非常丰富

修改后保存

点下图中的 + 号可以创建新的行

输入 titleurl

点右上角的 Save Row,就有数据了

又加了一行

REST API 访问

在主界面点最右上角的图标,单击 Copy auth token

单击同样的按钮,这次选择 Swagger APIs Doc

选择 Schemes 并单击Authorize

粘贴复制的令牌,然后单击 Authorize

验证成功

Get list 接口

可以查询到我们刚才建的两条数据

从数据库导入项目

通过连接外部数据库创建项目

需要进行数据库配置

老苏用了之前 兰空图床 的数据库

Test Database Connection 测试数据库连接

没问题的话就点 OK & Save Project

可以看到数据都已经过来了,接下来就可以通过 REST API 访问了

小结

NocoDB 和我们之前介绍的 SeaTable 非常类似,区别在于 SeaTable 偏向于提供应用模板,而 NocoDB 偏向于提供接口,是一个从数据库到 REST-GraphQL API 的生成器,更方便做二次开发

按官方的规划,未来可实现拖拽设计页面,这又有点像 Tduck


【小彩蛋】:一段时间不操作,界面会变得像黑客帝国

参考文档

nocodb/nocodb: 🔥 🔥 The Open Source Airtable alternative - Powered by Vue.js 🚀 🚀
地址:https://github.com/nocodb/nocodb

NocoDB Documentation - NocoDB
地址:https://docs.nocodb.com/

How to Install NocoDB on Your Synology NAS – Marius Hosting
地址:https://mariushosting.com/how-to-install-nocodb-on-your-synology-nas/