AppBoxFuture实战: 如何同步开发与生产环境的模型
2020-03-12 13:16
260 查看
框架是用抽象模型驱动的方式来生成应用系统的,这样可以将这些模型序列化为相应的模型包文件,通过反序列化导入至其他部署环境内,从而实现开发环境与生产环境的同步,包括对应的数据库结构的同步。下面通过示例来演示如何操作:
# 一、准备测试应用
* 通过New->Application创建一个新应用,名称如:erp;
* 选择新建的应用的Entities目录,通过New->Entity新建一个实体模型并映射至Default存储内,随便添加些属性;
* 选择新建的应用的Services目录,通过New->Service新建一个服务模型,随便实现一个服务方法;
* 选择新建的应用的Views目录,通过New->View新建一个视图模型;
* 通过Models->Publish发布当前应用。
# 二、导出应用模型包
通过AppStore->Export Application选择相应的应用导出,参考以下动图:
![](https://img2020.cnblogs.com/blog/4928/202003/4928-20200312130940282-1567722359.gif)
# 三、导入应用模型包
导入应用模型包时框架会判断当前是否存在相同的应用,如果存在则会进行新旧模型的比对,进行相应的添加、删除、更新模型的操作,如果不存在则简单导入整个应用。在这里我们先尝试导入整个应用,所以先通过选择刚刚创建的应用,点击Models->Delete删除掉,然后再通过AppStore->Import Application重新导入,参考以下动图:
![](https://img2020.cnblogs.com/blog/4928/202003/4928-20200312130953907-1419929369.gif)
> 注意:如果模型包使用了非默认数据库,导入前需要先创建相同名称相同类型的存储模型。
# 四、更新应用模型包
以上步骤导入了一个新的应用,下面步骤尝试更新应用:
* 修改模型:比如实体模型添加一个属性或添加一个索引,服务模型修改一下逻辑;
* 重新发布并导出为新的应用模型包;
* 删除当前应用,导入旧的应用模型包(步骤二导出),查看一下模型定义;
* 再重新导入新的应用包(本步骤导出),再查看一下模型是否更新了,另外可看一下数据库的数据表结构是否同步更新了。
# 五、本篇小结
模型包的导入导出功能一方面可以方便同步开发与生产环境,另一方面作者将来想建设一个应用及外包市场,这样大家就可以在市场上下载模型包直接导入修改。GitHub/enjoycode上用于测试的Windows的部署包[appbox.deploy.win]也由GitHub Action自动更新,Linux请自行编译测试。另一边码代码一边码文实属不易,作者需要您的支持请您多多点赞推荐!
相关文章推荐
- Maven 如何为不同的环境打包 —— 开发、测试和生产环境
- maven如何为不同的环境打包-开发、测试、生产环境
- Flink 实战:如何解决生产环境中的技术难题?
- Webpack中的sourcemap以及如何在生产和开发环境中合理的设置sourcemap的类型
- 使用git和expect在本地开发环境与服务器生产环境之间同步程序文件
- 详解vue项目和普通项目如何解决开发环境与生产环境下的跨域问题
- JPush Android 推送如何区分开发、生产环境
- JPush Android 推送如何区分开发、生产环境
- Maven 如何为不同的环境打包 —— 开发、测试和生产环境
- [生产库实战] 如何使用触发器对生产库上亿级大表进行实时同步
- JPush Android 推送如何区分开发、生产环境
- Maven 如何为不同的环境打包 —— 开发、测试和生产环境
- JPush Android 推送如何区分开发、生产环境
- 【转载】JPush Android 推送如何区分开发、生产环境
- 如何连接开发环境和生产环境?
- 如何用RegAsm.exe在开发/生产环境中注册C#/VB.NET开发的DLL
- Maven 如何为不同的环境打包 —— 开发、测试和生产环境
- Maven_如何为开发和生产环境建立不同的配置文件 --我的简洁方案
- JPush Android 推送如何区分开发、生产环境
- vue-cli3.0如何使用CDN区分开发、生产、预发布环境