什么是 Airtable ?
Airtable
是新型的在线表格制作工具,不仅局限于表格,它还可以把文字、图片、链接、文档等各种资料整合在一起。是电子表格-数据库混合体,具有数据库的功能,但实际上还是电子表格。
什么是 REST API ?
REST API
也称为RESTful API
,是遵循REST
架构规范的应用编程接口(API
或Web API
),支持与RESTful Web
服务进行交互。REST
是表述性状态传递的英文缩写(Representational State Transfer
),由计算机科学家Roy Fielding
在 2000 年提出。它的简单易用性,可扩展性,伸缩性受到广大Web
开发者的喜爱。
什么是 GraphQL ?
GraphQL
是一种新的API
标准,它提供了一种比REST
更有效、更强大和更灵活的替代方案。作为REST
的替代方案,GraphQL
允许开发人员构建相应的请求,从而通过单个API
调用从多个数据源中提取数据。GraphQL
由
开发,并于 2012 年首次应用于移动应用,于 2015 年实现开源。
REST API
在之前的『 简约但绝不简单的Komga 』一文中已经遇到了,而 NocoDB
同时支持 REST API
和 GraphQL API
安装
数据库
通过 phpMyAdmin
在 MariaDB 10
中新建用户 nocodb
,创建同名的库 nocodb
并授予所有权限。

如果使用 MariaDB 5
,在创建 table
时会遇到下面👇这样的错误
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 列是不能禁用的,

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

列
单击表格右上角的 +
图标

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

修改后保存

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

输入 title
和 url

点右上角的 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/nocodbNocoDB 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/




