From 66661f54333c39f88d4a5ae35eed4b39cac28c6a Mon Sep 17 00:00:00 2001 From: moyang <66232232@qq.com> Date: Thu, 7 Jul 2022 05:16:43 +0000 Subject: [PATCH] update README.md. --- README.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/README.md b/README.md index 7ce549b..f4f9d95 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,31 @@ 4. [新闻系统(opendb-news)](opendb-news.md) 5. [日志管理(opendb-log)](opendb-log.md) +## 预置数据 + +`openDB`不仅支持定义常用的数据表字段,还可以预置初始化数据。 + +比如,[opendb-city-china](https://gitee.com/dcloud/opendb/tree/master/collection/opendb-city-china)是opendb中定义好的`中国城市字典表`,它的定义分为两个部分: +- collection.json:定义数据表名称、所含字段、每个字段的类型以及读写权限规则等; +- data.json:定义初始化内容 + +你通过[uniCloud web控制台](https://unicloud.dcloud.net.cn)创建`openDB`表时,`uniCloud`会自动校验该opendb表定义中是否包含`data.json`,若包含,则在创建表定义后,自动导入`data.json`。 + +如果你的 HBuilderX 项目中,`uniCloud/database`目录下定义的数据表中含有opendb表定义,则对该opendb表执行`上传DB Schema`操作时,uniCloud服务端会判断该opendb表是否已存在: +- 若该opendb表已存在,则仅更新 `DB Schema`; +- 若该opendb表不存在,则先创建该表,然后校验该opendb表定义中是否包含`data.json`,若包含`data.json`,则自动导入`data.json` + +## 数据表升级 + +`openDB`数据表在后续的更新迭代中,可能会涉及到`schema`及`预置数据`的变更。自`HBuilderX 3.5.1`之后,opendb表支持检查更新。 + +以[opendb-city-china](https://gitee.com/dcloud/opendb/tree/master/collection/opendb-city-china)为例,当我们要修改或补充城市时,为了兼容已部署的数据表,应提供差量数据,这时我们需要做的是: +- 更新 `opendb-city-china/package.json`中的`version`字段为升级后的版本号; +- 新增 `opendb-city-china/collection.update-原始版本号-升级版本号.jql` JQL数据库管理器文件,内容为差量数据的JQL语句; + +比如行政区域的撤销或设立需要数据升级,并且定义升级后的版本号为0.0.2,这时需要将差量数据以JQL语句的形式写入文件`opendb-city-china/collection.update-0.0.1-0.0.2.jql`中,并更新`opendb-city-china/package.json`的`version`字段。 + + # 如何引入到自己的服务空间 在[uniCloud web控制台](https://unicloud.dcloud.net.cn),新建表时,可直接选择所有`openDB`的表。