完全バックアップは 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 が返さない部分は公開して明記する、という意味です。