Synchronizing projects
You may choose to synchronize your project if you
- Updated metadata in another party modeling tool.
- Made changes to metadata using a multidimensional modeling tool.
When you synchronize your project, you create a new project by replaying from the log files, all the actions you made in the original project.
Special considerations should be taken before synchronizing projects that contain segmented models or linked models.
If your data source is a relational database, you can update only the query subjects and do not need to perform a full project synchronization. You must perform a project synchronization to synchronize changes made in another data source.
If you import a subset of a data source, any new objects that were added to the data source are not included when you synchronize. The action log recorded the importing of objects that you originally specified. When you synchronize, only the originally imported objects are re-imported.
You can use project synchronization to run the complete action history of the model and update the model's metadata. You can also save portions of the action log to a separate script file for later use, or you can save the entire action log to a script file if you want to build the same model in batch mode. If you encounter errors when trying to run an action log script, see Fixing errors caused by invalid objects.
After synchronizing, you can choose to accept the new changes and create a new project, or return to the original project. If you accept the new changes, the original project is replaced.
Because every action that you made in your project is rerun, synchronization may take a long time.
If an object that is referenced by a transaction no longer exists, either because it was renamed or deleted, you will receive errors during the synchronization. For example, if you imported a table named Products and then renamed the table to New Products in your data source, you will receive an error when you synchronize the project. The synchronization cannot detect that the table named New Products was previously imported using a different name. You must manually retarget the object to complete the synchronization. For information about fixing synchronization errors, see Fixing errors caused by invalid objects.
Before synchronizing a project, you should understand how synchronization impacts segmented and linked models. You should also ensure that data source connections have not changed and that data sources are online. You can check your connections by testing a few key query subjects.
Segmented models
A segmented model should be synchronized only by synchronizing the main project. The results of synchronizing the entire project are written to the log file of the main project. The ability to synchronize individual segments is lost after the first synchronization of the main project.
If you are working in the main project and change a segment, the main log file is updated. If you are working in the segment and make changes, the segment log file is updated.
Synchronization commands do not necessarily run in the order they display in the log files. This happens because it is possible to update segments concurrently and the action logs are replayed based on the time of the original action. Commands may display to jump between log files, making it difficult to use debugging features such as single stepping.
Linked models
Log files are contained in the project that is open and not in the model that is updated.
If you open a main project and make changes to a linked model, the actions are logged in the log file of the main project. If you then synchronize the linked model, the change is lost because it did not display in the set of log files that were used in the synchronization.
Synchronization can be run only on the main project or a stand-alone segment. You cannot synchronize linked projects or segments in the main project. If the segments are updated by the linked project, the synchronization can produce unpredictable results in the main project.
Do not use model synchronization in combination with linked projects.