The dotCMS 5.1 version introduced one-sided relationship fields on Content Types. To assist with migrating old relationships to the new relationships fields, a relationship migration tool was added to legacy relationships. It is important to completely read both this documentation and the migrating legacy relationships documentation before push publishing content with legacy relationships that have been migrated to relationship fields.
Push Publishing Migrated Legacy Content Relationships
Related content is normally pushed as a dependency when pushing a piece of content from a sending to a receiving endpoint. However, after migrating legacy relationships on a sender endpoint, both the content and the Content Types will have different fields than on a receiving endpoint. There are a few options available to ensure the proper synchronization of these changes between push publishing endpoints to ensure that these migration changes make a smooth transition between endpoints.
Option 1 (Recommended): Migrate Relationships Separately on the Sender and Receiver
This option is recommended to ensure the visibility of the relationship fields on both the sending and receiving endpoints and also will delete legacy relationships on both sides of the push publishing environment.
- On the sender node follow the migrating legacy relationships documentation to convert legacy relationships to relationship fields.
- On the receiver node follow the migrating legacy relationships documentation to convert legacy relationships to relationship fields. Make sure that there are no remaining legacy relationships on either of the related content types.
- Force Push a single piece of content for each of the related content types and verify that the new relationship fields are present on both the sending and the receiving node for the pushed content, and the parent content types.
Option 2: Migrating Relationships on Sender and Force Pushing Content
This method is a little *heavier, but avoids having to duplicate any steps on a receiving endpoint. In addition to being a heavier process, pushing migrated relationships does not remove legacy relationships from the receiving endpoint. Legacy relationships must be deleted manually from the receiver. Their is no way to push a DELETE of legacy relationships.
SPECIAL NOTE: MIGRATING RELATIONSHIPS ON A SENDING NODE AND THEN PUSHING UNCHANGED CONTENT WITH NO FORCE PUSH, WILL NOT UPDATE THE RELATIONSHIP FIELDS ON THE CONTENT ON THE RECEIVING SERVER. FOLLOW EACH OF THESE STEPS CAREFULLY
On the sender node follow the migrating legacy relationships documentation to convert legacy relationships to relationship fields. Make sure that there are no remaining legacy relationships on either of the related content types.
Go to the Content Search manager and select all of the content for one of the related content types that has the new relationship field(s), and select PUSH PUBLISH, and make sure that you select the FORCE PUSH, so that each contentlet will be updated on the receiving server regardless of whether there have been any modifications to it or not since the last push.
Check the content and content types on the receiving endpoint to verify the new relationship fields.
Repeat steps 2 and 3 for the other Content that is part of the relationship. For example, after migrating legacy relationships on and Employee and Department Content Type, a force push of all the employee content should be followed by a force push of all of the Department content.
Once you have forced pushed your content and relationships to the receiver and have verified that they are there in your content, you should delete (NOT CONVERT) the old relationships from the receiver.
*When pushing very large amounts of content, it is better to perform this operation during non-peak hours.