Skip to content

升级方案(v8.x)

以下是 7.x=>8.x 的升级方案

警告!!!

我们始终不建议将你现有的已经在运营的项目升级到最新的大版本,因为往往有一些无法预知的问题。

方案

1、备份数据库和项目

这点是非常重要的,因为升级过程中可能会出现一些问题,如果出现问题,还有挽救的余地。

2、代码迁移

  • 拉取最新的代码;
  • 复制原有项目你特有的模块(非框架自带的模块);
  • 利用 vscode 等工具,全局搜索@midwayjs/decorator,替换为@midwayjs/core
  • 检查原有项目框架中的模块的改动,比如 base 模块,如若有做修改,根据改动内容进行调整;
  • [可选]从 v8.0 开始 BaseEntity 从@cool-midway/core迁移到base模块的entity/base.ts中, 原本的@cool-midway/core也保留了, 你可以根据需要选择使用;
ts
import { BaseEntity } from "../../base/entity/base";

注意

如果修改了 BaseEntity,由于createTimeupdateTime的类型改为了varchar,由于typeorm的同步机制,有可能会导致createTimeupdateTime的数据丢失。解决方案可以先去数据库中将createTimeupdateTime的类型改为varchar,然后再执行代码,这样类型一致,就不会删除字段再重建了。