Determine differences between environments

We currently have 5+ developers working in Percussion on an implementation. Because of this sometimes new Content Types, Templates, Slots, etc… get missed in the MSM archive building. Getting 5+ people to keep detailed lists of what they have done is, well, like hearding cats. (Which is why modern source control implementations allow you to see what has been changed since a certain date)

Is there a tool or any way to show the differences between 2 different Percussion environments? I am guessing there is no tool, so in liu of a tool, what DB tables can we diff to see the differences?

This is really becoming an issue, especially since everyone must stop work in order to build the archives. Then run it, then rebuild the archives… (Not to mention having to backup the target before this is done.)

Just the basics… (and from my experience)

Content Types are primarily described by XML files in [RhythmyxRoot]/ObjectStore/psx_ce<contenttypename>.xml That XML file provides the name of the database table(s) used for the content type, which is especially fun with child tables. So if you have your filesystem under some form of version control, an svn diff here may be useful.

With regard to the relevant Content Types table
CONTENTTYPES table -> CONTENTTYPEID field and VERSION field

Remember that primary keys are not necessarily the same between app instances, at least not until you get really good at refreshing your development instance from production.

As for Templates, have a look at the PSX_TEMPLATE table. While you could fall back on the TEMPLATEID and VERSION fields, the entire template is stored in that table, so you could make a comparison with your production templates.

In version 6.6 we added simple auditing of design object changes. This was aimed at providing information to assist Tech Support in troubleshooting issues where we’d like to be able to answer the question “What has changed recently?”, and so it has not yet been documented, but it may also be helpful in identifying changes in your scenario.

There is a table called PSX_DESIGN_AUDIT_LOG in which the system automatically logs changes to design objects. The data logged for each change is the type, ID, GUID, Username, date/time, and action (save/delete).

One limitation is that not all design object types are included in the logging, however most of the types you’ve mentioned and which frequently change are covered. Changes to the following types are not yet audited by the system (everything else should be):
• Control
• Display Format
• Extension
• Menu & Menu Entry
• Relationship Configuration
• Scheduled Tasks
• Search
• System and Shared Defs
• View
• Workflow
• XML Applications

By default, data in the table older than 30 days is automatically pruned.

I am currently looking into PSX_DESIGN_AUDIT_LOG table.

Would you please let me know where could I find the list of Object_Type used in this table, so far I figured out

2 means contentTYpe
4 means template
5 means slot

what about other types?

Attached is an Excel Worksheet with the complete list of all Percussion CM System 6.7 Design Object Types and their names.

Thanks for the information! The list is really useful.

for content_type 32 HIERARCHY_NODE, and 34 configuration, would you please give more details?

Object Type 32 - HIERARCHY_NODE: represents a relationship between design objects in the workbench and their parent folder(s).
Object Type 34 - CONFIGURATION: Identifies a configuration that can be loaded, edited, and saved through the workbench.

   /**
    * Indicates a configuration containing server page tags
    */
   SERVER_PAGE_TAGS(1, "<RhythmyxRootDir>\rxconfig\XSpLit\serverPageTags.xml")

   /**
    * Indicates a configuration containing tidy properties
    */
   TIDY_CONFIG(2, "<RhythmyxRootDir>\rxconfig\XSpLit	idy.properties")

   /**
    * Indicates the logging configuration
    */
   LOG_CONFIG(3, "<RhythmyxRootDir>\AppServer\server\rx\conf\log4j.xml")

   /**
    * Indicates a configuration containing navigation properties
    */
   NAV_CONFIG(4, "<RhythmyxRootDir>\rxconfig\Server\Navigation.properties")

   /**
    * Indicates a configuration containing workflow properties
    */
   WF_CONFIG(5, "<RhythmyxRootDir>\rxconfig\Workflow\rxworkflow.properties")

   /**
    * Indicates a configuration containing the thumbnail URL properties
    */
   THUMBNAIL_CONFIG(6, "<RhythmyxRootDir>\rxconfig\Server\addThumbnailURL.properties")

   /**
    * Indicates a configuration containing the System Velocity macros
    */
   SYSTEM_VELOCITY_MACROS(7, "<RhythmyxRootDir>\sys_resources\vm\sys_assembly.vm")

   /**
    * Indicates a configuration containing the User Velocity macro overrides
    */
   USER_VELOCITY_MACROS(8, "<RhythmyxRootDir>\rx_resources\vm\rx_assembly.vm")

   /**
    * Indicates a configuration containing the custom auth types
    */
   AUTH_TYPES(9, "<RhythmyxRootDir>\rxconfig\Server\authtypes.properties")

Object Type 142 - SYSTEM_DEF: Identifies all the SYSTEM fields (Content Design -> Content Types Global Configuration :: <RhythmyxRootDir>\rxconfig\Server\ContentEditors\contentEditorSystemDef.xml)