Automatic Schema Synchronization

The Microsoft Sync Framework does not make any provisions for automating the process of aligning the client database schema to match changes to the server—in a standard MS Sync Framework installation the developer is responsible for updating the data structures of the client-side database as needed.As developers, we know that changes to database structures are inevitable. As products are enhanced and new versions are released to incorporate functionality requested by the clients the developers are forced to modify the database structures. That is hard enough to do on a client-server architecture, in which there is only one copy of the database (the one in the server). In a mobile, occasionally connected architecture every single client needs to have their own copy of the database structures, and these client-side data structures have to be kept aligned with the server for the synchronization to work. Anybody that has rolled-out a new version of a mobile app with any significant changes to the data structures knows that there is a very significant amount of work involved, not to mention the risk of synchronization failures and of corrupted client-side databases if the clients fail to update their devices.

SyncStudio has a fully automated Database Schema Synchronization feature. Any changes that you make to the server’s database structures will be propagated to the clients the next time that they synchronize their devices.

If the changes that you make to your database structures do not “break” the synchronization process the changes will be handled transparently. However, please do keep in mind that any changes to the server database schema will always require a de-provisioning and re-provisioning cycle, which will force your clients to perform a full download.

You should always avoid making changes to your database that will “break” the synchronization process. The links below give you the key the information that you will need to plan your database changes, so as to prevent problems that will break the synchronization process:

Avoiding changes that break synchronization
Preventing Schema Synchronization Errors
Dealing with Stranded Client Records