Stephan Bruijnis .dev

MPR tool

Changing the Mendix version of a project or module with the MPR tool #

Sometimes you just wish you created that functionality or module in a different (lower) Mendix version, but now you are stuck with this Mendix version. Rebuilding the same functionality by hand feels like too much of a hassle, and upgrading the target project isn’t exactly what you want. Luckily there is a third option: the Mendix MPR tool.

Use at your own risk; your model can be damaged or fail because some features or documents are not backwards compatible. Make sure to make a back-up of your project/module first.

MPR tool #

The MPR tool is part of the Mendix Studio Pro installation and can be found in the modeler directory, for example C:\mx-studio\9.6.1.29396\modeler

MPR tool after open

  1. Launch the MprTool.exe
  2. File > Open the project MPR file you wish to convert to a lower Mendix version
  3. Tools > Edit Metadata to change the Product and Build version
  4. Close the tool, the project is now set to the new version

Edit metadata

It is advised to commit changes before changing the versions.

Changing a MPK file #

A Document / Module Package (.MPK file) also contains a MPR file but can’t be opened directly from the MPR tool. It is a zip file containing amongst others the MPR file.

  1. Rename the exported package extension from .mpk to .zip
  2. Unzip the file to a folder
  3. Open the .MPR file with the MPR tool
  4. Change the version (see previous instructions)
  5. Zip the folder
  6. Rename the .zip to .mpk
  7. Import the package in your target project

Some remarks #

It is quite an unknown tool and has been posted only a few times on the forums, because it is a bit technical and the chance on breaking stuff is high. An alternative to the MPR tool is the ModelSDK or a SQLite Browser both even more technical than this tool, but allow you to (programmatically) change the Mendix model. The Mendix project MPR files are in SQL lite format, the documents in the model (Pages, Microflows, Nanoflows) are stored as blobs containing BSON (as pointed out by Menno de Haas).