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请自行编译测试。另一边码代码一边码文实属不易,作者需要您的支持请您多多点赞推荐!
AppBoxFuture实战: 如何同步开发与生产环境的模型的更多相关文章
- webpack快速入门——实战技巧:开发和生产并行设置
package.json中,devDependencies和dependencies是不同的 devDependencies:开发依赖 dependencies:生产依赖(线上) 1.安装生产环境的依 ...
- 在package.json里面的script设置环境变量,区分开发及生产环境。注意mac与windows的设置方式不一样
在package.json里面的script设置环境变量,区分开发及生产环境. 注意mac与windows的设置方式不一样. "scripts": { "publish- ...
- webpack根据开发与生产环境配置不同变量--webpack.DefinePlugin
webpack有一个DefinePlugin接口,可以实现根据开发与生产环境配置不同变量.范例如下: 需求:开发环境请求baseUrl = '':生产环境请求 baseUrl = 'http://lo ...
- JPush Android 推送如何区分开发、生产环境
我们 Android 开发者在使用极光推送时可能会发现,在通过官方控制台进行推送时.只有 iOS 区分了开发和生产环境,而 Android 则没有.但实际开发中又确实经常需要针对开发和生产环境分别来推 ...
- Node JS后端项目开发与生产环境总结
原文地址:Node JS后端项目开发与生产环境总结 Node JS常用后端框架有express.koa.sails.国产框架有个egg js,已经在cnode投入生产了,还有个think js,类似t ...
- spring boot--日志、开发和生产环境切换、自定义配置(环境变量)
Spring Boot日志常用配置: # 日志输出的地址:Spring Boot默认并没有进行文件输出,只在控制台中进行了打印 logging.file=/home/zhou # 日志级别 debug ...
- 用前端姿势玩docker【四】基于docker快速构建webpack的开发与生产环境
目录 用前端姿势玩docker[一]Docker通俗理解常用功能汇总与操作埋坑 用前端姿势玩docker[二]dockerfile定制镜像初体验 用前端姿势玩docker[三]基于nvm的前端环境构建 ...
- Maven_如何为开发和生产环境建立不同的配置文件 --我的简洁方案
其实也是最近才看Maven, 以前都是用ant+ivy, 对于轻量级的项目来说足够了, 而且非常灵活. 看了看Maven, 约定.... 现在编程都说约定, 约定是挺好, 问题是超出约定的事情太多了, ...
- webpack开发与生产环境配置
前言 作者去年就开始使用webpack, 最早的接触就来自于vue-cli.那个时候工作重点主要也是 vue 的使用,对webpack的配置是知之甚少,期间有问题也是询问大牛 @吕大豹.顺便说一句,对 ...
随机推荐
- TZOJ-STL系列题
C++实验:STL之vector #include <bits/stdc++.h> using namespace std; void Input(vector<int>&am ...
- 关于用struts2框架中iframe对应的jsp页面的不到action的值的问题
我们做web项目经常会用到frameset.frame以及iframe,这大大方便了我们页面的构建以及模块功能的划分.但是,再使用这些技术的同时也会遇到各种各样的问题,其中一个就是子页面中得不到str ...
- [LC] 78. Subsets
Given a set of distinct integers, nums, return all possible subsets (the power set). Note: The solut ...
- @EnableGlobalMethodSecurity(prePostEnabled = true)
http://www.bubuko.com/infodetail-2243816.html
- 吴裕雄--天生自然python学习笔记:python爬虫PM2.5 实时监测显示器
PM2.5 对人体的健康影响很大,所以空气中的 PM2.5 实时信息受到越来越多的关注. Python 的 Pandas 套件不但可以自动读取网页中的表格 数据 , 还可对数据进行修改.排序等处理,也 ...
- centos5.5 下面 lnmp环境遇到的小问题
A)nginx 启动:/www/nginx/sbin/nginx -c /www/nginx/conf/nginx.conf 查看: ps -ef | grep nginx 停止:强制停止所有Ngin ...
- freeRadius设置任意账号密码认证通过
[root@wifi_radiusdproxy_16 raddb]# cat users # # Please read the documentation file ../doc/processin ...
- WEB 安全 - xss 初探
零.参考资料 网络攻击-XSS攻击详解: 前端安全之XSS攻击: 一.概念 跨站脚本攻击Cross-site scripting (XSS)是一种安全漏洞,攻击者可以利用这种漏洞在网站上注入恶意的客户 ...
- Pycharm 2019 破解激活方法
转载:https://blog.csdn.net/guofang110/article/details/87793264 使用破解补丁方法虽然麻烦,但是可用激活到2099年,基本上是永久激活了,毕竟在 ...
- Java IO: PipedOutputStream
原文链接 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) PipedOutputStream可以往管道里写入读取字节流数据,代码如下: 01 Outp ...