AppBoxFuture实战: 如何同步开发与生产环境的模型

  框架是用抽象模型驱动的方式来生成应用系统的,这样可以将这些模型序列化为相应的模型包文件,通过反序列化导入至其他部署环境内,从而实现开发环境与生产环境的同步,包括对应的数据库结构的同步。下面通过示例来演示如何操作:

一、准备测试应用

  • 通过New->Application创建一个新应用,名称如:erp;
  • 选择新建的应用的Entities目录,通过New->Entity新建一个实体模型并映射至Default存储内,随便添加些属性;
  • 选择新建的应用的Services目录,通过New->Service新建一个服务模型,随便实现一个服务方法;
  • 选择新建的应用的Views目录,通过New->View新建一个视图模型;
  • 通过Models->Publish发布当前应用。

二、导出应用模型包

  通过AppStore->Export Application选择相应的应用导出,参考以下动图:

三、导入应用模型包

  导入应用模型包时框架会判断当前是否存在相同的应用,如果存在则会进行新旧模型的比对,进行相应的添加、删除、更新模型的操作,如果不存在则简单导入整个应用。在这里我们先尝试导入整个应用,所以先通过选择刚刚创建的应用,点击Models->Delete删除掉,然后再通过AppStore->Import Application重新导入,参考以下动图:

注意:如果模型包使用了非默认数据库,导入前需要先创建相同名称相同类型的存储模型。

四、更新应用模型包

  以上步骤导入了一个新的应用,下面步骤尝试更新应用:

  • 修改模型:比如实体模型添加一个属性或添加一个索引,服务模型修改一下逻辑;
  • 重新发布并导出为新的应用模型包;
  • 删除当前应用,导入旧的应用模型包(步骤二导出),查看一下模型定义;
  • 再重新导入新的应用包(本步骤导出),再查看一下模型是否更新了,另外可看一下数据库的数据表结构是否同步更新了。

五、本篇小结

  模型包的导入导出功能一方面可以方便同步开发与生产环境,另一方面作者将来想建设一个应用及外包市场,这样大家就可以在市场上下载模型包直接导入修改。GitHub/enjoycode上用于测试的Windows的部署包[appbox.deploy.win]也由GitHub Action自动更新,Linux请自行编译测试。另一边码代码一边码文实属不易,作者需要您的支持请您多多点赞推荐!

posted @ 2020-03-12 13:16  白菜园  阅读(644)  评论(3编辑  收藏  举报