This release adds WP-CLI support for running migrations from the command line and dramatically speeds up imports and exports, fixes a range of import and export bugs, and patches several security issues. We recommend updating to the latest version.
Note: GravityMigrate now requires PHP 7.4 or newer.
🚀 Added
- WP-CLI commands for scripting migrations without the browser UI:
wp gk migrate export exports forms, entries, Views, and other data to a portable ZIP, with options to filter by form or data type, limit by date range, encrypt the ZIP, and rewrite URLs for the destination site.
wp gk migrate import imports a bundle, with options to filter forms/data or skip file uploads.
wp gk migrate inspect previews a bundle's forms, data types, and source URL without importing it.
wp gk migrate status reports migration state, including whether an import is in progress or a previous import stalled.
wp gk migrate reset clears stuck migration state.
✨ Improved
- Imports and exports are now up to 28x faster, especially for large migrations on sites with many posts.
- The ZIP uploader now explains why an import file cannot be read.
🔒 Security
- Fixed multiple security issues, including one that could allow unintended access under certain conditions.
🐛 Fixed
- Nested Forms (Gravity Wiz) parent/child relationships could be remapped using entries from other forms during import.
- Multiple files uploaded to the same field could overwrite each other during import, resulting in lost files.
- Gravity Flow workflow step history was not updated to reference the correct feed after import.
- A PHP warning could occur while exporting posts whose GravityView content (Views, widgets) referenced a form.
- Entry references in imported Views or pages could point at the wrong entries, including when an imported form failed to import and left a gap in entry IDs.
- Gravity Forms and GravityKit plugin settings migration could fail.
- Import no longer aborts entirely when a form, GravityView View, or Multiple Forms join references a form that was deleted at the source or wasn't included in the import.
- A View whose connected form was not included in the export was dropped during import, leaving its page showing a shortcode for a View that no longer existed. The View now imports with its form connection cleared.
- Imported entries kept a link to a post (where the entry was submitted from) that was not part of the export, which could attach the entry to an unrelated imported View or page.
- An import that stops part way no longer leaves the importer locked, so a corrected file can be imported right away.
- The export screen offered Gravity Flow data on sites that have Gravity Flow feeds but no workflow history to export.
💻 Developer Updates
🔄 Updated