コンフリクト - 競合の管理
データ同期におけるコンフリクトを理解する¶
これらの条件のいずれかが満たされたときにコンフリクトが発生します:
1) 異なるユーザーが同じ地物の同じ属性に異なる値を設定する; 2) プライマリ・キーが2回使用される。 コンフリクトが発生する可能性は極めて低いですが、健全なQGISプロジェクトでデータの整合性を維持するためには、コンフリクトを防止、緩和、解決することが重要です。ここでは、そのためのヒントとトリックをいくつか紹介します。
コンフリクトを避けるには?¶
- ユニークな「fid」シリアル番号:
- 地物を作成する際、レイヤー内の各地物にユニークな "fid "シリアル番号を割り当てることをお勧めします。
-
"fid"に "epoch(now())"(二重引用符なし)という表現を使用すると、ミリ秒ごとに一意な識別子が生成され、"fid "番号が重複する可能性が低くなります。
-
計画と指定:
- 現場の状況に基づいて既存の地物を更新する場合は、各ユーザーが更新する地物を計画し、指定します。
- ユーザーは、"fid "や識別子の番号を変更することは避けるべきです。
コンフリクトを解決するには?¶
-
デフォルトでは、QFieldCloudは_last wins_ポリシーを使用して競合を上書きします(競合に関係する属性への変更の最新のパッチが、これらの属性への変更の以前のパッチをすべて置き換えます)。また、管理者はプロジェクトのコンフリクト解決ポリシーを_manual_に設定することもできます。この場合、プロジェクト管理者はコンフリクトを手動で解決し、プロジェクトに適用するコンフリクトを選ぶ必要があります。
-
コンフリクトに対処するとき:
- 「変更」セクションに移動します。
- ステータスが "Not_applied "の変更だけをフィルタします。
- コンフリクトしている各変更を選択し、"Action "ドロップダウンメニューからステータスを "Re-apply "に設定します。また、すべての新しい変更がコンフリクトしている場合は、最後にコンフリクトした変更を選択し、"Re-apply this and newer changes "を選択することもできます。
- コンフリクトの変更内容を確認し、ページの最後にある「すべて保存」をクリックします。
- 詳細については、公式ドキュメントDelta applyをご参照ください。