> For the complete documentation index, see [llms.txt](https://ayakaleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ayakaleaf-pro.ayaka.space/on-premises/ja/sapto/support-guides/full-project-history-migration.md).

# （v3.5.13 移行）プロジェクト全履歴の移行

## 完全なプロジェクト履歴の移行

次の `3.5.x` Community Edition のリリースには、次が含まれます [Full Project History 機能](https://www.overleaf.com/learn/latex/Using_the_History_feature) これはすでに当社の SaaS 提供で利用可能で、 [overleaf.com](http://overleaf.com/)

Overleaf CE にインスタンスをアップグレードした後 `3.5.13`、新規プロジェクトはすべてデフォルトで Full Project History を使用します。既存プロジェクトは、移行されるまでは従来の History システムを引き続き使用します。

{% hint style="info" %}
〜にアップグレードする場合 `3.5.13` 以前のバージョンにダウングレードすることにした場合は、完全なシステムバックアップから復元する必要があります。で作成されたプロジェクトの履歴は `3.5.13` は、以前の Overleaf CE のバージョンとは互換性がありません。
{% endhint %}

新しい Full Project History には、ユーザー向けのいくつかの改善があります：

* バイナリファイルの変更を追跡します。これは従来システムではサポートされていません。
* ラベル付きバージョンに対応しています。
* システム全体がより堅牢になり、データ損失の可能性が低くなります。

参照 [Full Project History のドキュメント](https://www.overleaf.com/learn/latex/Using_the_History_feature) を確認して、完全なプロジェクト履歴について詳しくご覧ください。

### 既存プロジェクトの移行

{% stepper %}
{% step %}

#### バックアップを作成する

完全な [バックアップ](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup) 一貫したスナップショットを含むインスタンスの **mongo**, **redis** および **sharelatex** ディレクトリ。
{% endstep %}

{% step %}

#### 更新

sharelatex/sharelatex イメージのバージョンを 3.5.13 に更新します。

Toolkit: 次を使用します `$ bin/upgrade` ツールキットを最新バージョンにアップグレードするためのスクリプトであり、 **config/version** を 3.5.13 に変更します。
{% endstep %}

{% step %}

#### インスタンスを起動する

理想的には、バックアップを復元する必要が生じた場合のデータ損失を避けるため、移行中はユーザーがインスタンスにアクセスできないようにするべきです。参照： [オフライン移行](https://github.com/overleaf/overleaf/wiki/Full-Project-History-Migration/#offline-migration) この方法の詳細はこちら。
{% endstep %}

{% step %}

#### すべてのサービスが起動して実行中になるまで待ちます

すべてのサービスが起動して実行中になるまで待ちます（下のコマンドを参照）

{% code overflow="wrap" %}

```bash
$ bin/docker-compose exec sharelatex /bin/bash -c "curl http://localhost:3000/status"
web sharelatex が稼働中です (api)%
```

{% endcode %}
{% endstep %}

{% step %}

#### 移行スクリプトを実行する

{% code overflow="wrap" %}

```bash
# Overleaf Toolkit ユーザー：
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; VERBOSE_LOGGING=true node scripts/history/migrate_history.js --force-clean --fix-invalid-characters --convert-large-docs-to-file"

# 従来の docker-compose.yml ユーザー：
$ docker exec sharelatex /bin/bash -c "cd /overleaf/services/web; VERBOSE_LOGGING=true node scripts/history/migrate_history.js --force-clean --fix-invalid-characters --convert-large-docs-to-file"
```

{% endcode %}

`--force-clean` 新しいシステム内の部分的に移行されたプロジェクト履歴データを消去します。これにより、以前の試行で失敗した個別プロジェクトの移行を再試行できます。

`--fix-invalid-characters` 新しい履歴システムでサポートされていない非表示文字を置換します。

`--convert-large-docs-to-file` 編集可能サイズのしきい値である 2MB を超えるドキュメントを、編集不可ファイルに変換します）

出力は次のようになります：

```bash
移行済みプロジェクト  :  1
総プロジェクト数     :  51
残りのプロジェクト :  51
移行する履歴レコードの総数: 98
移行を開始しています...
プロジェクトを移行中: 63d29b5772dd80015a81bffe
移行結果 { upgraded: true, historyType: 'NoneWithoutConversion' }
プロジェクトを移行中: 63d29c2e72dd80015a81c0a2
移行結果 { upgraded: true, historyType: 'NoneWithoutConversion' }

// …

移行が完了しました
==================
移行されたプロジェクト数:  51
失敗したプロジェクト数:  0
完了。
```

移行が成功すると、終了コードは `0`となり、最後の行に失敗なしが示されます：

```bash
失敗したプロジェクト数:  0
完了。
```

ユーザーにアクセスを再開できます（次の手順を参照）。失敗がある場合は、下のトラブルシューティング セクションを参照してください。問題がすぐに解決しなくてもサイトを再開できます。未移行のプロジェクトは従来の履歴システムのまま残ります。
{% endstep %}

{% step %}

#### サイトを再開する

オフライン移行を実行することを選択していた場合は、サイトを再開する必要があります。まだログインしている場合は、次の操作が必要です：

1. クリックしてください **管理者** ボタンを押して、次を選択します **サイトを管理**
2. クリックしてください **エディタを開く/閉じる** タブ
3. クリックしてください **エディタを再度開く** ボタン

ブラウザを閉じている場合は、次でサイトを再起動する必要があります `$ bin/up`.
{% endstep %}
{% endstepper %}

#### オフライン移行

履歴移行スクリプトの実行中にユーザーがログインできないようにするには、次の手順に従ってください：

* 管理者アカウントで Overleaf インスタンスにログインします
* クリックしてください **管理者** ボタンを押して、次を選択します **サイトを管理**
* クリックしてください **エディタを開く/閉じる** タブ
* クリックしてください **エディタを閉じる** ボタン
* クリックしてください **すべてのユーザーを切断** ボタン

これが完了すると、ログイン中のユーザーはメンテナンスページにリダイレクトされ、新しくログインページにアクセスしたユーザーはメンテナンスページを表示して **それは** ログインできるようになります。

#### オンライン移行

アプリケーションを稼働させたまま移行スクリプトを実行することも可能です。考慮すべき点がいくつかあります：

* 移行処理は CPU を多く消費するため、スクリプト実行中はリソース使用率を監視してください。
* 高い `--concurrency` 値では、一部のサービスのイベントループ（`track-changes` 特に）はブロッキングが発生する可能性があり、UX の低下につながります。まずはデフォルトの `--concurrency=1` 値から始めることをお勧めします。
* スクリプトはいつでも停止できます。再度開始すると、中断したところから移行が再開されます。これは、混雑の少ない時間帯（例：夜間）に移行を実行したい場合に便利です。

推奨は、サイトを閉じてメンテナンス時間帯にオフラインで移行を実行することです。プロジェクト数が 1000 件未満（`db.projects.count()`）の場合です。プロジェクト数が多い場合は、スクリプトを実行して進行状況を監視し、そのうえで状況に応じてオンラインで続行するかオフラインにするかを判断できます。

#### 従来の履歴データをクリーンアップする

従来の履歴データをクリーンアップするスクリプトが Server Pro に追加されました `3.5.6`, `4.0.6` および `4.1.0`.

{% code overflow="wrap" %}

```bash
bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/history/clean_sl_history_data.js"
```

{% endcode %}

このスクリプトは、すべてのプロジェクトの移行後に実行できます。オンライン移行中に空き容量を確保するためにも使用できます。

{% hint style="info" %}
バージョン 3.5.13 より前の Server Pro では、このスクリプトは次の内容を削除します `docHistory` および `docHistoryIndex` コレクション。MongoDB はドキュメントを削除してもディスク容量を解放しません。その代わり、同じコレクション内の将来のドキュメントのためにその領域を再利用します。履歴移行後はこれらのコレクションに再び書き込まれることはないため、ディスク容量は未使用のままとなります。

ディスク容量を再び利用可能にしたい場合は、Server Pro 3.5.13（3.x リリースを使用している場合）または Server Pro 4.2.5（4.x リリースを使用している場合）にアップグレードし、クリーンアップスクリプトを再実行してください。

Server Pro に含まれるクリーンアップスクリプトは、次の最新パッチリリースに含まれています `3.5.x` および最新の `4.x.x` では最終ステップとしてコレクションを削除します。

クリーンアップスクリプトは安全に再実行できます。
{% endhint %}

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

ここにトラブルシューティングの助言を追加します。通常は Server Pro のお客様のみにサポートを提供していますが、この移行の性質を踏まえ、完全なプロジェクト履歴の移行に固有の問題を経験した CE のお客様にもできる限り対応します。

完全なプロジェクト履歴移行スクリプトが失敗した場合（つまり、エラーで終了するか、失敗したプロジェクト数が 0 以外で出力された場合）は、次の詳細をメールでサポートチームに送ってください [support+historymigration@overleaf.com](mailto:support+historymigration@overleaf.com?subject=Full%20project%20history%20migration%20problem\&body=Instance%20Type%3A%20CE%20or%20Server%20Pro%20%28delete%20as%20appropriate%29%0A%0AInstallation%20Type%3A%20Overleaf%20toolkit%20or%20docker-compose.yml%20or%20other%20%28delete%20as%20appropriate%29%0A%0AScript%20output%3A%0A%0Abin%2Fdoctor%20output%20%28if%20using%20toolkit%29%3A%0A)、以下の内容を記載してください：

件名: 完全なプロジェクト履歴の移行に関する問題

* インスタンス種別: CE または Server Pro（該当しない方を削除）
* インストール種別: Overleaf Toolkit または `docker-compose.yml` またはその他（該当しない方を削除）
* バージョン: 3.5.x (toolkit: `$ cat config/version`)
* 移行スクリプトの出力（コンテナ内の次の場所にあるはずです `/overleaf/services/web`)
* 移行済みプロジェクト数:（移行スクリプトの出力による）
* 総プロジェクト数:（移行スクリプトの出力による）
* 残りのプロジェクト数:（移行スクリプトの出力による）
* 移行にかかった時間:
* `bin/doctor` 出力（Toolkit 使用時）
* Toolkit のバージョン: `$ git rev-parse HEAD` （Toolkit 使用時）

次のログファイルを添付することを検討してください `history-v1`, `project-history` および `track-changes` サービスのものをメールに添付してください。次の場所で見つかります `/var/log/sharelatex` の中の `sharelatex` コンテナ内で、次のようにエクスポートします：

```bash
$ docker cp sharelatex:/var/log/sharelatex/history-v1.log history-v1.log
$ docker cp sharelatex:/var/log/sharelatex/project-history.log project-history.log
$ docker cp sharelatex:/var/log/sharelatex/track-changes.log track-changes.log
```

添付する前に、ログファイル内の機密情報を必ずマスキングしてください。

#### 壊れたファイルツリーを見つける

ファイルツリーが不正なプロジェクトでは移行が失敗することがあります（たとえば、ファイル名が空の場合）。これらの問題の一覧は次を使って確認できます `find_malformed_filetrees` データベース内のすべてのプロジェクトをチェックするスクリプト：

{% code overflow="wrap" %}

```bash
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/find_malformed_filetrees.js"
不正なパス: 123456789012345678901234 rootFolder.0.1.2.3
不正なパス: 123456789012345678901234 rootFolder.0.4.5.6
...
```

{% endcode %}

不正なパスを修正するには、次を使用します `fix_malformed_filetree` スクリプト。悪いパスごとに 1 回ずつコマンドを実行します：

{% code overflow="wrap" %}

```bash
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/fix_malformed_filetree.js 123456789012345678901234 rootFolder.0.1.2.3"
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/fix_malformed_filetree.js 123456789012345678901234 rootFolder.0.4.5.6"
...
```

{% endcode %}

#### プロジェクトを完全なプロジェクト履歴から従来の履歴へダウングレードする

完全なプロジェクト履歴に移行済みのプロジェクトを従来の履歴に戻したい場合は、次を使用してください `downgrade_project` スクリプトを次のように使用します：

{% code overflow="wrap" %}

```bash
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; PROJECT_ID=YOUR
```

{% endcode %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://ayakaleaf-pro.ayaka.space/on-premises/ja/sapto/support-guides/full-project-history-migration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
