数据库
适用环境 | SaaS |
私有部署 |
要求
ONES |
---|
v3.6.0+ |
概述
有时候插件希望可以持久化自己的数据。插件数据库能力可以让每个插件拥有自己独立的数据库,并提供访问和操作它的方法。
备注
该能力兼容 mysql 5.7.x 版本 SQL 语法
设计和使用规范
- 不创建没有主键的表;
- 库名、表名和字段名不使用驼峰形式;
- 库名、表名、字段名中和索引名不出现
- * \ / # @
等特殊字符; - 不向字符类型的字段插入
[]byte
数据; - 不使用
json
类型字段; - 不使用
NULL
值做唯一键约束; - 使用
varchar
代替char
; - 使用
INSERT
需显式写出要插入的列。比如insert into values (1, 2);
应该写为insert into (col1, col2) values (1, 2);
- 使用占位符
?
的方式插入和更新数据。
使用
数据库能力使用:
第一步:安装依赖
进入插件工程的/backend
目录,执行以下命令进行依赖安装:
npm i @ones-op/node-database
第二步:编写数据库 SQL 文件
创建插件数据库,需要先将数据库中所有表的表创建语句预先书写在 SQL 文件中并放到 workspace
目录下。
示例 SQL 文件:
警告
语句中表名称需要使用小写字母,允许使用下划线_
, 不允许使用-
, 同时必需使用 {{ }}
将表名称括起来。
workspace/plugin.sql
CREATE TABLE IF NOT EXISTS `{{email_id_map}}` (
`email` varchar(128) CHARACTER SET latin1 NOT NULL COMMENT '邮箱',
`id_number` varchar(128) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '工号',
PRIMARY KEY (`email`)
) ENGINE = InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_bin;