1

Ipad側でSqlサーバーデータベーステーブルをSqlLiteデータベースと同期するためにMicrosoft Synch Service Framework 4.0を使用しています。

Sql Server データベースでデータベース スキーマを変更する前に、データベース テーブルのプロビジョニングを解除する必要があります。また、スキーマを変更した後、テーブルを再プロビジョニングします。このプロセスでは、追跡テーブル (つまり、同期情報) が削除されます。

再プロビジョニング後にトラッキング テーブル情報を復元したい。これはどのように行うことができますか?デプロビジョニングせずに DB を変更することは可能ですか。

たとえば、アプリケーションはバージョン 2.0 で、同期は正常に機能しています。次のバージョン 3.0 では、DB を変更したいと考えています。SO、Deprovisioning-Provisioning の過程で、追跡情報。削除されます。そのため、以前のバージョンからの追跡情報はすべて失われます。追跡情報を失いたくありません。この追跡情報を以前のバージョンから復元するにはどうすればよいですか?

デプロビジョニングの前に、追跡情報を保存するためのカスタム コードまたはトリガーを作成する必要があると思います。誰かが適切な方法を提案したり、この問題に関するいくつかの有用なリンクを提供したりできますか?

4

2 に答える 2

4

プロビジョニング プロセスによって、追跡テーブルが自動的に入力されます。自分でコピーしてリロードする必要はありません。

追跡テーブルが、フレームワークが以前に同期されたものを格納する場所であると考える場合、答えはノーです。

追跡テーブルは、挿入/更新/削除されたものを単純に格納します。変更の列挙に使用されます。以前に同期されたものに関する情報は、scope_info テーブルに格納されます。

デプロビジョニングすると、この同期メタデータが消去されます。同期すると、2 つのレプリカが以前に同期したことがないように見えます。したがって、フレームワークが宛先に既に存在する行を適用しようとすると、競合が発生します。

sync fx で作成されたオブジェクトを「ハッキング」して、ある種のスキーマ変更を行う方法については、ここで情報を見つけることができます。

同期フレームワークのスコープ定義の変更 – パート 1 – はじめに

同期フレームワーク スコープ定義の変更 – パート 2 – 回避策

同期フレームワーク スコープ定義の変更 – パート 3 – 回避策 – 列の追加/削除

同期フレームワーク スコープ定義の変更 – パート 4 – 回避策 – 既存のスコープへのテーブルの追加

于 2012-11-03T04:12:55.137 に答える