uniclound-云服务开发切换云服务商以及数据迁移

672 阅读3分钟

项目为:微信小程序
云服务商:阿里云服务
需求:切换为腾讯云服务
目前uniclound的阿里云服务是免费的,但是线路目前的话经常会不稳定。所以如果是公司业务持续跑的话,建议还是使用腾讯云服务

一、创建腾讯的uniClound的云开发环境

1、登录uniClound web控制平台,首先是创建腾讯云服务

image.png

2、返回你的项目中。创建uniClound的腾讯云开发环境 image.png

3、把之前的uniclound-aliyun 云服务里面的内容复制到这个腾讯云开发uniClound-tcb中。然后删除阿里云开发即可。上传所有的云函数,和数据表类型 image.png

到这里已经云服务已经切换完毕了

二、数据的迁移

1、迁移之前是要把数据先下载备份,参考【uniClound-数据的备份与导出

登录web控制平台,把各个数据表的数据导出 image.png

2、清洗数据

因为腾讯云不能兼容阿里的数据,所以备份下来的数据是需要清洗,参照uniClound-云厂商之间的迁移

// 原始数据
{"_id":{"$oid":"60fa6d25cd84d60001ec38a2"},"uid":{"$oid":"60fa6d1d2e5faa0001ade857"}}

// 调整后的数据
{"_id":"60fa6d25cd84d60001ec38a2a","uid":"60fa6d1d2e5faa0001ade857a"} // 在结尾追加了一个“a”使其不满足ObjectId格式

如果数据表不是特别多的情况下,可根据官方的文档的示例,逐个清洗数据。如果数据量大的话。可使用官方的付费插件unicloud数据库一键搬家工具,支持阿里云与腾讯云互转。支持跨账号转。

我这里则根据官网文档来清洗数据: 在备份的数据文件夹中,创建parse.js文件,使用node parse.js 输入文件相对或绝对路径 输出文件相对或绝对路径即可处理导出的json文件

image.png

执行命令,将清洗的数据创建在/a文件夹下

node parse.js ./book-list.json ./a/booke-list.json

3、导入数据

登录uniClound的web控制平台,云数据库/云数据库,直接导入清洗过后的数据即可
insert: 直接添加新记录 upsert:如果有一样的数据则是直接覆盖

image.png

然后小程序项目这边,则需要重新打包然后发布审核上线。到这一步,切换云服务商以及数据迁移都已完成

使用vk-unicloud 2.7.0-版本迁移注意事项

如果有使用到vk-unicloud(2.7.0版本前)框架的,在迁移的过程中,需要注意一下几点。迁移之后,需要更新vk-unicloud框架再重新发布你的程序

1、由于uni官方的限制,开始收紧了一些官方固定开头的表名如: opendb,uni等 在迁移中需要调整表名: opendb-components-dynamic 改为 vk-components-dynamic
opendb-global-data 改为 vk-global-data
uni-id-files 改为 vk-files
uni-id-files-categories 改为 vk-files-categories

2、腾讯云已经限制更改请求超时时间为900一下:在以下路径下/cloundfunctions/router/package.json,timeout要设置为900以下。

image.png