# 阿里云公测版迁移到正式版
为了开发者更方便的将业务从公测版迁移到正式版,我们提供了公测版一键迁移到正式版的功能,开发者可在[uniCloud控制台](https://unicloud.dcloud.net.cn)操作迁移,流程如下:
## 购买正式版迁移空间
公测版迁移正式版,需通过`迁移正式版`操作来下单购买待迁移的正式版空间,该操作会为两个空间增加迁移绑定关系,方便后续迁移配置。
![](https://f184e7c3-1912-41b2-b81f-435d1b37c7b4.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/a0eea46e-f89f-40de-ac99-6f0eb09a55f3.png)
迁移时,可以选择新空间使用**按量计费**或**包月套餐**。
如选择套餐,会根据公测版老空间的流量消耗和存储空间综合判断推荐的套餐,低于套餐可能因为存储不足而迁移失败,或刚迁移结束就欠费停服。
如果你的迁移选项里只有按量计费,没有套餐,那说明即便是最高档的套餐也无法满足。
因为老空间未提供流量统计,且一直免费。导致很多开发者不知道自己的流量和存储消耗多大,可能会惊讶于最低套餐的标准。
对于认为套餐超过预期的开发者,可能是存储里过多无用文件或代码需要优化,推荐改用按量付费,跑1天看看使用量消耗到底在哪里,问题出在哪里,然后优化下代码和存储,把成本降下来。
根据用量推荐套餐的算法是阿里云计算的,DCloud也没有公测版老空间的用量数据。而阿里云也不会故意推荐更贵的套餐给开发者。它只是纯粹的一段算法,保证迁移不会失败。
DCloud始终是为开发者提供更高性价比方案的产品服务公司,请不要误会DCloud会在套餐推荐上故意刷把戏挣钱。
目前包月套餐可以转按量计费,但按量计费还不能转包月套餐。我们会推进阿里云尽快解决。
在购买待迁移空间前,已经可以获取到迁移后云存储上传及下载的域名,**开发小程序的话,由于小程序安全域名白名单在客户端有缓存,建议迁移前两天将云存储域名添加到白名单**。
下单时可设置迁移任务执行的时间,迁移时间仅支持两小时后到三天内的时间点,在未开始执行之前可更改迁移时间。
由于待迁移正式版空间是一个全新且独立的空间,所以在创建后会分配新的SpaceId,规则为`mp-公测版SpaceId`。
为了更好的在云函数/云对象中兼容,购买待迁移正式版空间时, 可选择`是否在云函数/云对象代码中兼容 SpaceID`,如果开启该选项,迁移后在云函数/云对象内获取的`context.SPACEINFO.spaceId` 及 `cloudInfo` 内的 SpaceId 将保持不变,仍为原公测版SpaceId。开发者可以通过`context.SPACEINFO.useOldSpaceId` 或 `cloudInfo.useOldSpaceId`判断当前获取的spaceId是不是迁移前的,true表示当前服务空间在云函数内取到的服务空间id为迁移前的服务空间id,否则为新空间id。如运行本地云函数,此特性于`HBuilderX 3.6.13`起支持,云端默认支持此特性。**迁移后的新服务空间id为旧空间id加`mp-`前缀。**
![](https://f184e7c3-1912-41b2-b81f-435d1b37c7b4.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/1febab5f-e51e-462e-8833-aad26127efc5.png)
**注意**:
- 公测版不可迁移到正式版的免费版(开发者版)
- 购买待迁移正式版空间后,为了保证数据迁移的一致性,此时的正式版空间无法在HBuilderX关联、无法在控制台创建数据表、无法在云存储及前端网页托管上传文件等操作,直至迁移完成。
- 只有通过`迁移正式版`完成创建的正式版服务空间才支持一键迁移,原已创建的正式版空间无法使用该功能。
- 如果客户端为小程序,请在迁移前先到小程序后台配置新的上传域名到上传域名白名单(注意不要移除公测版服务空间的上传下载域名),**由于小程序安全域名在微信客户端内有缓存,建议再迁移前两天进行配置**
- 建议在半夜等用户不访问的时间进行迁移。迁移过程耗时数分钟(具体取决于云存储的文件量),迁移中大多数功能仍可以使用,但云存储的上传功能在迁移中会关闭。
- 正式版固定IP代理出口IP和公测版不同,如有在三方平台配置域名白名单请自行修改,参考:[阿里云固定IP](cf-functions.md#aliyun-eip)
- 迁移到正式版后公测版服务空间的数据库备份不会被迁移过来
- 迁移到正式版后开发者下次在HBuilderX打包发行时会使用正式版服务空间ID。请注意这时候需要修改小程序request域名白名单,将`api.next.bspapp.com`添加到request域名白名单内
- 迁移到正式版后公测版服务空间前端网页托管默认域名将在公测结束后自动回收
- 迁移到正式版后不可删除公测版服务空间,需等待公测结束后自动回收
## 迁移开始
系统会在设置的迁移时间自动开始执行迁移任务,迁移逻辑及注意事项如下:
### 云数据库
- 云数据库无需迁移,会将公测版服务空间的数据库关联到正式版上,所以**请勿删除公测版数据**
迁移期间是否可正常服务:是
迁移类型:无感迁移
迁移耗时:无
### 云函数
- 云函数定时任务、url化配置及自定义域名会一并迁移,公测版服务空间的url化请求会自动转发到正式版服务空间上
- 如果绑定了自定义域名,此时仍会请求到公测版空间然后转发到正式版空间,您也可以将域名解析到正式版服务空间,免去请求转发的逻辑
迁移期间是否可正常服务:是
迁移类型:无感迁移
迁移耗时:约3-5分钟
### 跨域配置
- 由于正式版跨域配置上限为9条,跨域配置记录迁移后可能会超上限,此时无法新增。正式版跨域配置支持泛域名,可将公测版配置的多个子域名删除后添加一条泛域名
迁移期间是否可正常服务:是
迁移类型:无感迁移
迁移耗时:很短,可忽略不计
### 云存储
- 云存储在迁移开始后,上传文件的功能不可用,访问不受影响
- 原云存储链接仍可正常访问,流量费用会计到正式版空间,正式版空间如果是包年包月则从资源用量中扣除,如果是按量计费则会出账并从余额中扣除,出账时间为T+2
迁移期间是否可正常服务:可正常访问,不可上传
迁移类型:有感迁移,迁移期间不可上传文件
迁移耗时:1GB迁移耗时约1分钟
### 前端网页托管
- 前端网页托管文件及自定义域名会一并迁移,迁移期间访问不受影响
- 单页应用配置取消,改为由错误页面实现,迁移时会自动将开发者配置的单页应用目录转为错误页面配置项,开发者无需操作
- 默认域名及自定义域名此时仍会请求到公测版空间,与云存储不同的是不会转发到正式版空间
- 正式版空间如果为按量计费,在迁移任务执行时会自动开通前端网页托管
迁移期间是否可正常服务:是
迁移类型:有感迁移,迁移完成后自定义域名需重新绑定及解析CNAME到正式版
迁移耗时:1GB迁移耗时约1分钟
## 迁移完成
在迁移任务执行完成后,业务中公测版服务空间相关的数据会一并迁移至正式版:
1. 插件市场购买的付费插件
2. 公测版服务空间购买的Redis
3. 公测版服务空间添加的协作者
4. 公测版服务空间添加的安全网络及IP防刷配置
此时公测版服务空间将无法在[uniCloud控制台](https://unicloud.dcloud.net.cn)操作,无法在HBuilderX关联, 正式版服务空间已完全替代公测版,可在HBuilderX关联进行打包。
### 迁移完成后的TODO
- 检查云函数运行是否正常,比如定时任务及url化是否正常、云函数/云对象中获取到的SpaceId是否符合预期
- 检查云存储上传是否正常,公测版服务空间的上传请求会转发到正式版,所以上传的文件会在正式版里体现
- 检查前端网页托管是否正常,比如自定义域名的访问。如果有使用默认域名请尽快替换为正式版域名
### 前端网页托管绑定了自定义域名
如果绑定了自定义域名,则仍会请求到公测版服务空间,此时正式版上传的文件并不会反向同步到公测版,导致自定义域名无法访问新上传的文件。
由于自定义域名仍绑定在公测版服务空间,正式版空间前端网页托管的域名状态为`需解绑后重新绑定`
![](https://f184e7c3-1912-41b2-b81f-435d1b37c7b4.cdn.bspapp.com/VKCEYUGU-f184e7c3-1912-41b2-b81f-435d1b37c7b4/5fa6249a-2900-40aa-b4b8-16f37d2307a1.png)
需要开发者在[uniCloud控制台](https://unicloud.dcloud.net.cn)将自定义域名删除后重新绑定,通过该操作获取到新的CNAME后,将域名解析更换到新的CNAME以完成域名迁移。 这个期间前端网页托管自定义域名访问会中断,建议在访问量较低的时候处理。