Synopsis

The purpose of this module is to assist content editors and managers in maintaining and managing content that is provided by a regularly run migration or feed based on the core migration api.

Suppose you have a content type that is populated from a regularly run migration feed from an external source outside the editor's control. Suppose this feed contains the full list of content, and your existing content receives updates from this external source. In this case your migration updates all content on each run or uses track_changes to selectively update old content.

In this situation, the editor has no ability to override any of the incoming data. If they try to make a change to a field on a particular entity, that change will be overridden the next time the migration runs and updates that entity. While it is possible to configure a migration to skip a certain field for ALL entities, there is no easy way to skip a field on a single entity in a migration while allowing the migration to continue to update that field on other entities.

This module allows an editor to override a field on a single entity and prevent it from being overwritten on subsequent migrations. After configuring which fields are permitted to be overridden, entity forms will have an additional set of checkboxes to indicate that a particular field should not be updated in a future migration run.

The module uses javascript to disable many common field widgets until the override box is checked so that an editor is less likely to enter data into a field that may later be overridden.

Requirements

This module requires only the core migrate and field modules (and their dependencies) to work.

The following contrib modules can assist greatly with custom migrations and work well with Migrate Override
Migrate Plus
Migrate Tools

Known problems

Not all widgets are able to be easily disabled via the #states key, most notably long text fields and date widgets. The module is unable to disable those widgets in the entity forms however the migration override functionality still works.

Supporting organizations: 

Project information

Releases