MonkeybreadSoftware Posted yesterday at 07:21 AM Posted yesterday at 07:21 AM FileMaker 2025 (v22.0) comes with improved tools. When you install FileMaker Server, you find these tools in the /FileMaker Server/Database Server/bin folder. FMUpgradeTool A command-line utility (developer preview) for applying schema, layout, or script changes to a FileMaker Pro .fmp12 file without affecting the data. It uses XML-based patch files to modify an existing file (the source) and generate an updated version (the destination). Common use cases include delivering critical bug fixes, applying temporary debug patches, or making small enhancements between full app releases. It does not support migrating or altering record data. Best used for lightweight, short-term updates rather than major version changes. FMDeveloperTool A utility for advanced FileMaker developers that allows for detailed analysis, comparison, and documentation of FileMaker solutions. It helps identify structural differences and supports version control workflows. FMDataMigration A command-line tool that enables efficient migration of data from one FileMaker file to another. It is especially useful during development and deployment to move data from a live file into a newly updated solution file without loss. Include plugins New in version 22.0 is the possibility to load plugins. The new command line parameter -plugin_folder will tell each tool where to find the plugins. Please use version 15.2 (or better 15.3 soon) to load the MBS Plugin. We had to change a few things to make it work well. If you like to copy tools to the desktop, you need to include libraries for macOS. All the tools reference libraries in ../Frameworks folder, so you need that folder a level higher: Example Let's start with a sample upgrade. We make a new Assets.fmp12 file, save it as XML. Then we make a copy of the file, add a field with a calculation calling MBS("Version") and save that again as XML. Now we compare both XML files and find the XML things we need for this example patch file: <?xml version="1.0" encoding="UTF-8"?> <FMUpgradeToolPatch> <Structure> <AddAction> <FieldsForTables membercount="1"> <FieldCatalog> <UUID modifications="1" userName="Duc Ha" accountName="Admin" timestamp="2020-04-03T11:17:11">886552CE-F9EF-46C8-8ABB-62CDA24ADB4A</UUID> <TagList/> <BaseTableReference id="130" name="Assets" UUID="032CA0A0-BDD5-416D-BF5A-A9123C0F1048"/> <ObjectList membercount="6"> <Field id="15" name="Test" fieldtype="Normal" datatype="Text" comment=""> <UUID modifications="2" userName="Christian Schmitz" accountName="Admin" timestamp="2025-06-29T19:49:17">CF650B81-34D2-404B-908C-EEBCD6F267A2</UUID> <AutoEnter type="Calculated" prohibitModification="False" overwriteExisting="True" alwaysEvaluate="False"> <Calculated> <Calculation> <TableOccurrenceReference id="1065090" name="Assets" UUID="FCBB4700-F780-414D-A5A8-64F0DADAA8F6"/> <Text><![CDATA[MBS("Version")]]></Text> </Calculation> </Calculated> </AutoEnter> <Validation type="OnlyDuringDataEntry" allowOverride="True" notEmpty="False" unique="False" existing="False"/> <Storage autoIndex="True" index="None" global="False" maxRepetitions="1"> <LanguageReference name="English" id="21"/> </Storage> <TagList/> </Field> </ObjectList> </FieldCatalog> </FieldsForTables> </AddAction> </Structure> </FMUpgradeToolPatch> So we build this command line call to validate the patch field: ./FileMaker\ Tools/Tools/FMUpgradeTool --validatePatch -src_path ./Assets.fmp12 -patch_path ./upgrade.xml Next we try to call the tool without plugins: ./FileMaker\ Tools/Tools/FMUpgradeTool --update -src_path ./Assets.fmp12 -patch_path ./upgrade.xml -dest_path ./Assets2.fmp12 -v -src_account Admin -src_pwd "" When we inspect the output file, we see our calculation being commented out: /* MBS("Version") */ That was an issue for clients in older versions of the tool. With version 22.0, we can try again with plugins: ./FileMaker\ Tools/Tools/FMUpgradeTool --update -src_path ./Assets.fmp12 -patch_path ./upgrade.xml -dest_path ./Assets2.fmp12 -v -src_account Admin -src_pwd "" -plugin_folder /Users/cs/Library/Application Support/FileMaker/Extensions As you see we simply point to the local plugins folder used for FileMaker Pro and the tool loads it. The output in Terminal looks like this: FMUpgradeTool 22.0.1.64 (06-13-2025) Subcommand: "update" Source file: "./Assets.fmp12" Source account: "Admin" Patch file: "./upgrade.xml" Destination file: "./Assets2.fmp12" Force overwrite: Off In place: Off Start: Sun Jun 29 19:58:14 2025 Preparing Input and Output Files... MBS Plugin version 15.3.0.04 Prerelease for Mac 64-bit loaded for Tool 22.0. MBS Debug: Compiled Jun 27 2025, 09:32:47 Loading Patch File... Parsing XML... Applying Patch File... Patch File Applied End: Sun Jun 29 19:58:15 2025 As you see the MBS Plugin will report it being loaded. Since the call is successful, our MBS() call in the calculation is no longer quoted, but actually works. Hurray! Please try and let us know if you find some issues.
Recommended Posts