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