WeÂ have a number of environments that we work with and we move data from one environment to another using both the generally available and highly customized Release Manager and, of course, the Content Porter. This post is about what we’ve found that works best in this scenario, and helps us to ensure that the release happens as smoothly as possible.
Recently I’ve been working with a client that has fairly heavy publishing requirements. The blueprint contains over 300 publications, each containing a couple hundred pages. This means a release with widespread impacts can easily lead to 10-20 thousand published items. Luckily, we’ve scaled out publishing to the point where this ordinarily isn’t a problem. However, we were still noticing intermittent problems with our deployer. These came up in two main ways:
- Publishing getting stuck in a “throttled state”, even when all other tasks in the queue were either successfully published or waiting for publish
- The publishing queue showing all publishes stuck on a “ready for transfer state”, even though the files on the file system were being updated
Content Porter got you down, friend? You’ve got components from a lower environment that need to be migrated to a staging or production environment, but the schema they’re based on has changes that aren’t ready for prime time yet. It’s 1 am, and if you don’t get this solved by the start of business the sky will fall.
Panic! Don’t panic. This has a very simple solution.
An SDL Tridion schema is the (.xsd) definition for content. Eventually you may need to re-order, add, or remove fields to accommodate changes to your content model. Changing a schema doesn’t instantly change content based on this schema (trust me, you probably wouldn’t want it to). To make such an update, authors can open and close items in the Content Manager Explorer which will synchronize components to their updated definitions.
This works for a few dozen items, but can quickly get monotonous for several hundred components. Per SDL Live Content (http://sdllivecontent.sdl.com/), SDL Content Porter 2009 and later have the ability to “Synchronize Components against Schema before importing.”
“If you import a Component or a content item that has metadata, without also importing the (Metadata) Schema on which the item depends, the item you import may not match the Schema on the target system. Selecting this option tells Content Porter to attempt to modify the import item to match the Schema found on the target system.”
There’s a very important note that “selecting this option could lead to data loss.”
This synchronization option covers field re-ordering, removing fields no longer in the target schema(s), and adding new fields as long as they’re optional and/or have a default value. Also important is realizing this is a synchronization action which makes some existing fields match an updated schema. It should be clear that things like renaming fields and requiring a field without a default would require more manual (or programmatic) work.
The option is selected by default on an import, all you have to do is update the target schema before doing the import. Again, be careful with this as schema changes can lead to data loss.
I recently installed Content Porter 2009 SP2 Server and Client on the same server as the SDL Tridion Content Manager(CM) 2011 SP1.
Exporting worked totally fine, the zip was created and sat there just dying to be imported… so I thought ‘great, just a quick test of importing and I’m done’.