Data sync,对于那些深谙其道的技术高手而言,意义不言自明。然鹅对整天在村工厂里打螺丝的我来说,却经历了一段难捱的时期。时至今日,我仍然时不时地选择性地遗忘某些概念和技术点。因此,本文章记录我之前一点实操的心得和coding脚本。如果读者可以汲取其中一二,那么距离Mendix伟大目标的成功彼岸便又近了一步。
数据库之间的数据同步(Data Sync)是现代IT系统中的一项至关重要的任务,从业务与技术两个角度看具有深远的价值和意义:
- 降低业务风险:及时准确的数据同步可以降低由于数据延迟或错误造成的业务风险。在金融、医疗等高风险行业中,这一点尤其重要
- 数据恢复:当系统发生故障,数据同步能够帮助进行快速恢复,减少业务中断的时间
- 提供实时或近实时信息
- 提高客户体验
本文的试验点在于切中一个很小的部分,即测试库到生产库的数据初始化的复用。人工制作和输入数据可能会引入错误,使用已经经过验证和测试的初始化数据可以避免这种情况。手动在生产库中重新创建这些数据,这😅。。。需要花费额外的时间和劳动力,所以更好的办法是采用Mendix的Data replication模块。其典型用例包括:
- 将现有数据库转换为 Mendix 域模型
- 将您的应用程序与另一个应用程序使用的数据库同步
- 创建数据库列和对象属性之间的映射
- 将数据库引用映射到 Mendix 对象引用
- 基于多个连接表映射对象属性
下载链接为:https://marketplace.mendix.com/link/component/160
但由于文档匮乏,不如现场派出几张大图更加直观:
创建了DB链接项目之后,下面就要配置source table到target table啦,为了更好地说明整个配置流程,这里show出来的为视频方式,如果喜欢的话就点个赞吧,否则今后该不该回归静态图片,要看大家偏好:
创建table的source到target的同步配置项.mp4https://bbs-file.jiaxiao.pub/6b28643d6aac4215a29c60a3c36d0cac/post/2023/09/29/867407572745846784.mp4
上面视频里的场景是学生选课,schema如下:
补充更多信息:
- source mx 项目和target的mx项目,都需要相同的一模一样的schema。但source 项目DB,我采用的是MySQL,而target 项目是mx内嵌的hsql。
现在演示学生table与课程table,怎样从source MySQL导入到target hsql,还是视频走一波:
sync from MySQLtohsql.mp4https://bbs-file.jiaxiao.pub/6b28643d6aac4215a29c60a3c36d0cac/post/2023/09/29/867410455977525248.mp4
至此为止,大部分的简易需求都能满足。但尤为重要的是table之间的关系,该怎样导入,请看如下操作:
association handler.mp4https://bbs-file.jiaxiao.pub/6b28643d6aac4215a29c60a3c36d0cac/post/2023/09/29/867415800913330176.mp4
association的处理方法多多,此处用到的最灵活,即自定义微流。干脆免费放到这里,省却大家自行coding的麻烦:
Microflow_dataLoading.ziphttps://bbs-file.jiaxiao.pub/6b28643d6aac4215a29c60a3c36d0cac/post/2023/09/29/867416935728414720.zip
最后提醒大家,reflection模块是必须的。因为需要最开始通过它,把target 项目的所需导入table对象的schema给查询出来:
希望大家多多练习,Data sync以外,更多技术points,需要大家一起贡献力量,壮大生态~
关于Mendix公司
在一个数字化先行的世界中,客户希望自己的每一项需求都得到满足,员工希望使用更好的工具来完成工作,而企业意识到自己只有通过全面数字化转型才能生存并取得成功。Mendix,a Siemens business正在迅速成为企业数字化转型的推动者。Mendix公司是权威行业分析师眼中的领导者和远见者,从人工智能和增强现实,到智能自动化和原生移动,Mendix公司已成为数字化先行企业的骨干。Mendix公司企业低代码平台已被全球4000多家领先的公司采用。