Mendix数据库迁移

6 篇文章 0 订阅
5 篇文章 0 订阅

1. 简介

本文将阐述如何将已有的Mendix数据库迁移到另一个Mendix数据库。如果希望将一种类型的数据库迁移到另一种类型的数据库,例如从MS SQL Server迁移到PostgreSQL,阅读本文将有所裨益。

读完本文,将在以下方面有所收获:

  • 从非PostgreSQL到PostgreSQL的迁移
  • 导出PostgreSQL数据库
  • 上传导出的PostgreSQL数据库到Mendix Cloud
  • 导出Mendix Cloud数据库
  • 导入到私有PostgreSQL数据库
  • 将PostgreSQL数据库迁移到非PostgreSQL数据库,包括将PostgreSQL迁移到SAP HANA

注意:不可使用本文中的方法将数据从一个应用迁移到另一个应用。是因为每个应用有各自实体,即使在领域模型中它们有着相同的名称。如果希望将一个应用的数据复制给另一个应用,推荐使用Database Replication模块。

2. 概述

可以将数据从任何Mendix支持的数据库管理系统复制到任何其他的Mendix支持数据库管理系统中。例如,可以将演示、测试、生产数据库从Mendix内置的数据库复制到PostgreSQL数据库,也可以从PostgreSQL数据库复制到Mendix内置的数据库。也可以将生产数据从私有的SQL Server或者Oracle迁移到云端的PostgreSQL。

为此,开启一个应用包括要复制的数据库。该数据库应该存在并完全为空。为了让Mendix知道从哪个数据库复制数据,必须做些自定义配置。这些自定义配置标明了源数据库并为Mendix提供访问所需的身份验证。

迁移过程中最常见的数据库自定义配置包括:

  • SourceDatabaseType (HSQLDB, MYSQL, ORACLE, POSTGRESQL, SQLSERVER)
  • SourceDatabaseHost
  • SourceDatabaseName
  • SourceDatabaseUserName
  • SourceDatabasePassword

更详细的配置列表,请参阅运行时自定义(Runtime Customization)

自定义配置如下:

  • 在Mendix Studio Pro的“App Explorer”中,展开“App”,双击"Settings",在"Custom"标签页编辑配置:
    Mendix Studio Pro 自定义配置
  • 在服务控制台(Service Console)中,点击左侧的应用,点击"Configuration",点击"Advanced",可以看到"Custom Mendix settings"
    Service Console自定义配置
  • 在m2ee-tools中,将自定义配置加到mxruntime部分(有关更多信息,请参阅m2ee完整的文档)

可以使用Mendix Studio Pro、服务控制台(Service Console)、或者m2ee-tools进行数据库迁移。服务控制台(Service Console)更具优势的地方在于可以看到复制的进度条,如果有大量数据需要很长时间复制,将更方便。

在应用启动阶段,Mendix将数据库迁移作为正常的数据库同步阶段处理。如果使用m2ee-tools,可能会在启动过程中看到如“The database has to be synchronized”消息或者空消息。执行数据库迁移过程中,可以跳过这些消息。

在数据复制过程开始之前,将根据源数据库结构生成主数据库结构。这是确保所有数据都被毫无问题地复制所必需的,尤其是在源数据库相比当前的领域模型有大量的元素值。

源数据库结构和数据不会在迁移过程中发生变化。

3. 在Mendix Studio Pro中使用PostgreSQL

可以配置Mendix Studio Pro使用PostgreSQL数据库而不是内置(HSQLDB)数据库。参考以下步骤:

  1. 打开"App">“Setting
  2. 点击"New"从"Configurations"标签页新增配置
  3. 将配置新命名
  4. 在"Database"标签页,将看到如下值:
    • Type - PostgreSQL
    • Database name - default
    • URL - 本地PostgreSQL服务器的URL
    • User name - 本地PostgreSQL的数据库管理员用户名
    • Password - 上述用户的密码
      PostgreSQL配置
  5. 确保PostgreSQL于本地运行在正确的短口
  6. 在本地运行应用。前提是该PostgreSQL数据库是空的,应用将配置该数据库支持应用的领域模型。

如果已有数据库,例如云端的测试数据库,可以将其恢复到本地PostgreSQL数据库。具体恢复步骤请参考本地恢复备份

4. 从非PostgreSQL迁移到PostgreSQL

Mendix Cloud环境只使用PostgreSQL作为数据库服务器。推荐的方法是将已存私有的非PostgreSQL源数据库迁移到新的私有的PostgreSQL目标数据库。

源数据库包含要迁移到Mendix Cloud的数据。目标PostgreSQL数据库应该是完全空白的,例如,不含任何表。在通过设置(Settings),Mendix应用启用指向目标数据库的配置。对于源数据库的自定义配置参考上文概述部分所述。

在配置Mendix应用后,只需本地运行应用即可将源数据库的数据自动地迁移到目标数据库。在导出目标数据库之前,通常必须先通过在浏览器中查看应用程序来进行验证。

4.1 导出PostgreSQL数据库

为了导出PostgreSQL数据库,请参考pg_dump命令行或者PG Admin可视化工具文档来理解如何创建PostgreSQL数据库备份。

4.2 将导出的PostgreSQL数据库上传到Mendix Cloud数据库

使用开发者门户(Developer Portal),上传导出的备份数据库,迁移到Mendix Cloud。在开发中门户的Nodes页,执行如下步骤:

  1. 选择应用;
  2. 点击左侧菜单中"Backups"
  3. 点击"Upload Backup"上传数据库
  4. 使用文件选择器从本地文件系统选择要导出的数据库
  5. 在上传完成后,停止应用
  6. 选择已上传备份,然后点击"Restore Backup"来恢复备份
  7. 最后,启动应用

5. 导出Mendix Cloud数据库

同样的过程可以用来导出已有的Mendix云数据库,将其导入到私有的PostgreSQL源数据库,并迁移到私有的非PostgreSQL目标数据库。

通过开发者门户导出Mendix云数据库。可以使用开发者门户中的"Nodes"页来完成:选择应用和环境,点击"Details",点击"Backup"标签,从列表中选择已存的备份,点击"Download Backup"按钮使用对话框中的数据库URL将数据库下载到本地文件系统。可以使用"Create Backup"按钮先来创建最新数据的全新备份。

5.1 导入到私有PostgreSQL数据库

要使用下载的数据库文件导入PostgreSQL数据库,请参考pg_dump命令行或PG Admin可视化工具文档来理解如何恢复已下载的数据库文件。

5.2 将PostgreSQL数据库迁移到非PostgreSQL数据库

以下是有关如何将PostgreSQL数据库迁移到其他数据库的一般指南。对于迁移PostgreSQL数据库的情况有一个特殊的部分,该数据库由运行在SAP业务技术平台(SAP BTP)上的Mendix应用使用。

5.2.1 一般性指导

源数据库是从Mendix Cloud下载的PostgreSQL数据库。目标非PostgreSQL数据库必须是完全空的,例如,不包含任何表。在Mendix应用中通过设置(Settings)启用的配置应指向目标数据库,对于源数据库的自定义配置参考上文概述部分所述。

在配置Mendix应用后,只需本地运行应用即可将源数据库的数据自动地迁移到目标数据库。在导出目标数据库之前,通常必须先通过在浏览器中查看应用程序来进行验证。

5.2.2 迁移到SAP BTP上的SAP HANA

如果使用运行SAP BTP上的PostgreSQL数据库作为Mendix应用的数据库服务,并将数据库迁移到SAP HANA,还需要执行以下额外的步骤:

  1. 使用Cloud Foundry命令行,登入SAP BTP、Cloud Foundry环境(包含PostgreSQL服务)
  2. 使用如下命令从应用的环境变量中获取PostgreSQL服务实例详情:
    cf env {application-name}
    
  3. 检查VCAP_SERVICES列表,记下postgresql服务的以下属性值:
    • dbname – {dbname}
    • hostname – {hostname}
    • password – {password}
    • port – {port}
    • username – {username}
      如下图中的高亮部分所示:
      SAP BTP PostgreSQL
  4. 使用Mendix Developer Portal创建SAP HANA数据库服务的环境
  5. 部署mda,但不启动应用
  6. 使用Cloud Foundry命令行,登入SAP BTP、Cloud Foundry环境(包含SAP HANA服务)
  7. 使用命令行,用前面记下的PostgreSQL实例值设置SAP HANA环境的运行属性
cf set-env {application-name} MXRUNTIME_SourceDatabaseType POSTGRESQL
cf set-env {application-name}  MXRUNTIME_SourceDatabaseHost {hostname}:{port}
cf set-env {application-name} MXRUNTIME_SourceDatabaseName {dbname}
cf set-env {application-name}  MXRUNTIME_SourceDatabaseUserName {username}
cf set-env {application-name}  MXRUNTIME_SourceDatabasePassword {password}
  1. 用开发者门户或命令行启动应用
  2. 应用启动后,验证应用的数据。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寻找未来的世界

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值