Search code examples
c#microsoft-sync-framework

Deprovision and Reprovision for SyncFX not working?


So, I have a sync fx C# project which connects to two databases. I am currently adding provision to both projects, but before I provision, I deprovision first, as seen in the code.

SqlSyncScopeProvisioning sqlAzureProv = new SqlSyncScopeProvisioning(sqlAzureConn, myScope);
SqlSyncScopeDeprovisioning sqlAzureDeprov = new     SqlSyncScopeDeprovisioning(sqlAzureConn);


sqlAzureDeprov.DeprovisionStore();

sqlAzureProv.Apply();

the problem is, everytime I call the Apply() method, it throws the error

The column 'local_update_peer_timestamp' was specified multiple times for 'changes'.

I haven't used any column local_update_peer_timestamp in my database, I've checked everything.

It only happens when reprovisioning, a fresh provision doesn't return any errors.

Any ideas? Thanks.


Solution

  • just putting the actual issue here.

    when populating the scope description, make sure you don't include the tables created by Sync Fx (_tracking tables and scope_xxx tables) in the sync scope description.

    this normally happens when you just scan all tables in the database, loop thru them and add them to the sync scope description.