完全バックアップは API が返すすべてのデータから始まります
どのツールも「完全」をうたっていますが、それを全部実現できているツールはありません。NotionManager は三つのことをします。API が出すものを全部取り、部分同士のつながりを組み直し、境界を正確に伝えます。
API が出すものを全部読み込む
前半は、全部を読み込んで何も解釈しないことです。共有したルートオブジェクトから始めて、すべてのページ、すべてのデータベース、すべてのプロパティ、すべての block を、子ページへたどりながら何も残らなくなるまで読み進めます。コピーは生の材料として始まります。この段階で絞り込んだり作り変えたりした内容は、あとから取り戻せません。
コメントを飛ばす、ファイルをダウンロードしない、といった絞り込みを自分で指定しない限り、NotionManager は取れるものをすべて取ろうとして、ローカルバックアップの完全性を保ちます。最終的な表示はスタイルの違いで変わることがありますが、データそのものはいつも完全で確かです。
次に、生データの意味を組み直す
後半は、構造を元に戻すことです。Notion は木であると同時にグラフでもあります。ページはメンションと関連で互いを指し、rollup はその関連をたどって値を計算し、データベースはビューを通して読まれ、ビューは絞り込みと並べ替えも受け持ちます。JSON が入ったフォルダーはバイト数が同じでも、この意味をすべて失っています。
関連を組み直すと、コピーは閲覧も検証もできるようになります。関連をたどって、それが指すページへ進めます。rollup は計算できない数式ではなく、そのとき持っていた値として見えます。データベースを開けば、ビューが表示していた行をそのまま読めます。
組み直しが対象にするもの
ページ構造
ページの構造をそのまま残し、対応している block の種類はすべて描画します。richtext や callout などが含まれます。
ページ参照
あるページが別のページに触れているとき、そのリンクはコピーの中に残ります。オフラインでもたどれます。
データベースの関連
ある行が別のデータベースの行を指しているとき、復元後はコピー済みの二つのページの間の関連になります。行き先の見つからない識別子にはなりません。
rollup
計算された値は、その実行の時点の値として残すようにします。履歴のコピーはその瞬間の値を示すべきです。
ビュー
各ビューは、それが見せていたデータと一緒にコピーします。行、行のプロパティ、そしてビューが付けた順序も含みます。
外部メディアファイル
画像、動画、音声、PDF などです。Notion での見え方とまったく同じ形で残します。
確認表をそのまま並べる
| ワークスペースの一部分 | バックアップに入るか |
|---|---|
| ページ、その block、入れ子 | 入ります。いちばん下の子ページまで読み込みます。 |
| データベース、そのデータソースとプロパティ | 入ります。各行が持つプロパティも含みます。 |
| ページとしての行 | 入ります。各行はページで、それぞれ中身があります。 |
| ページ同士の関連とメンション | 入ります。関連を組み直したので、リンクはコピーの中で動きます。 |
| rollup とその他の計算値 | 入ります。実行した時点の値として残します。 |
| 各ビューの裏にある行と順序 | 入ります。ビューが見せていたデータがそのまま入ります。 |
| ビューの見た目:色、グループ化、レイアウト | 一部だけです。API は一部しか返しません。コピーは Notion のスタイルにできるだけ合わせます。 |
| コメント | 一部だけです。未解決のコメントだけをバックアップします。コメントのバックアップは別のスイッチが必要です。バックアップがかなり遅くなるからです。 |
| 外部メディアファイル | 入ります。オフラインで快適に読めるよう、外部メディアファイルは既定ですべてローカルにダウンロードします。望まない場合はダウンロードを切れます。 |
| API が説明しない block の種類 | 一部だけです。申告された種類と位置のまま残し、ページに印を付けるので、どこでデータが欠けているか分かります。 |
| ワークスペースの権限、共有、ゲストアクセス | 入りません。それは Notion の設定で、中身ではありません。 |
| 連携に共有しなかったもの | 入りません。コピーに入るのは、許可したものだけです。 |
この確認表が短いのに正直な理由
何でも保存できると言うバックアップツールは、API をよく見ていません。上の一覧は、Notion API が誰にでも渡せるものの全部です。最後の三行がいちばん大事です。バックアップは Notion を置き換えるものではなく、補うものだと示しています。
役に立つ判断基準は、理論上完全かどうかではありません。自分でコピーを開いて確かめられるかどうかです。閲覧できるコピーは、そのためにあります。
幸いなことに、利用者から見て Notion で見えるデータはどれもバックアップできます。バックアップできないものは多くがスタイルや特殊な構造で、バックアップの価値や有効性を損ないません。
自分のコピーを確かめる
バックアップを一度取り、オフラインで開いて、関連を一、二本たどってみてください。見つかるものは上の確認表と一致するはずです。
次に読むページ
よくある質問
完全バックアップに添付ファイルも入りますか。
ファイルは中身の一部です。API が提供するものは、外部リンクのファイルも含めて NotionManager が読み込みます。ファイルのリンクには API が一時的に発行するものがあり、やがて使えなくなります。そのため NotionManager はすべてのファイルをローカルにダウンロードする方を選びます。この動きは自分で変えられます。
ビューの色やレイアウトがバックアップされないのはなぜですか。
Notion に、それらを返すインターフェースがないからです。NotionManager はビューのスタイルをできるだけ再現しますが、Notion と完全に同じになることは約束しません。
rollup を値として保存すると、復元後に間違いになるのですか。
コピーを取った瞬間については正しいままです。履歴のコピーは、そのときワークスペースが示していた内容を見せるべきで、数式がいま出す結果ではありません。
「完全」は「全部」と同じですか。
いいえ。どの Notion バックアップも、そう正直には言えません。完全とは、API が出すものを全部、Notion が組むのと同じ形に整え、API が返さない部分は公開して明記する、という意味です。
