Airtable的开源替代方案NocoDB
什么是 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由
REST API 在之前的『 简约但绝不简单的Komga 』一文中已经遇到了,而 NocoDB 同时支持 REST API和 GraphQL API
安装
数据库
通过 phpMyAdmin 在 MariaDB 10 中新建用户 nocodb,创建同名的库 nocodb 并授予所有权限。

如果使用 MariaDB 5,在创建 table 时会遇到下面👇这样的错误
1 | CODE: |
从而导致创建失败

安装镜像
在群晖上以 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/