# 同期と整合性

> ローカルファースト時のクラウド同期の仕組み・ON/OFF 操作・コンフリクト時の挙動。

Category: データ管理
Updated: 2026-05-17
Keywords: 同期, クラウド同期, ローカルファースト, コンフリクト

---
## 同期の前提

niyase のデスクトップ / モバイルはローカルファーストです。デバイス上の SQLite が **唯一の真実 (source of truth)** で、クラウドはレプリカという位置づけです。

- 未ログイン: 同期なし。完全ローカル
- ログイン後: スペース単位で同期 ON/OFF を選択

## 同期の ON/OFF

スペース設定 → 同期タブから切り替えます。

- **ON**: 編集が自動的にクラウドに反映され、他端末でも見えるようになります
- **OFF**: ローカルのまま。データはクラウドに上がりません

「ログアウト」と「同期 OFF」は別概念です。ログアウトしても、ローカルデータは「cloud-cached」状態で残ります。

## アプリバーの同期ステータス

アプリバーには常時、同期ステータスアイコンが表示されます（Google Docs 型の安心感）。

| 表示 | 状態                          |
| ---- | ----------------------------- |
| ◯ 緑 | 完全同期済                    |
| ↻ 青 | 同期中                        |
| ⚠ 黄 | 競合あり / 一時的なリトライ中 |
| ✕ 灰 | 同期 OFF または未ログイン     |

## コンフリクト時の挙動

同じレコードを複数端末で同時に編集した場合:

1. 後勝ち（last-write-wins）が基本だが、重要フィールドは保護対象
2. 監査ログにすべての変更が残る
3. UI でコンフリクトの存在を通知 → 履歴から手動マージ可能

## 同期に含まれないもの

- 端末固有設定（表示色・ピン留めの並び等）
- ローカルキャッシュ（PDF のサムネイル等）
- ログインセッション

## トラブルシューティング

同期が進まないときは:

1. アプリバーのステータスをクリックして詳細を確認
2. ネットワーク接続を確認
3. 該当スペースの「同期を再試行」を実行
4. それでも解決しない場合は [トラブルシューティング](/troubleshooting) を参照
