メインコンテンツまでスキップ

バックアップとアーカイブ

PlayCanvasプロジェクトを定期的にバックアップして保護することは、偶発的な削除、悪意のある行為、またはデータ損失から守るために不可欠です。このセクションでは、プロジェクトをバックアップおよび復元するために利用できるすべての方法について説明します。

プロジェクトをバックアップする理由

定期的なバックアップは、以下から保護します:

  • アセットやシーンの偶発的な削除
  • 悪意のあるチームメンバーの行動
  • アカウントセキュリティの問題
  • データ破損または技術的な問題
  • プロジェクトを破損させる開発上の間違い

バックアップ方法

1. フォーク

バックアップを作成する最も簡単な方法は、自分のプロジェクトをフォークすることです。フォークについては、このセクションの以前の箇所で包括的に説明されています

2. アーカイブ(playcanvas.com経由)

アーカイブファイルは、オフラインで保存し、後でインポートできる完全なプロジェクトバックアップを提供します。

プロジェクトリストから

Export Archive

プロジェクトアーカイブをエクスポートするには:

  1. ログインしていることを確認します
  2. エクスポートしたいプロジェクトを所有するユーザーページにアクセスします
  3. プロジェクトリストでプロジェクトを見つけます
  4. プロジェクト名の右にある下矢印をクリックします
  5. **「プロジェクトをエクスポート」**を選択します
  6. アーカイブが生成されるのを待ちます
  7. ダウンロードをクリックしてZIPファイルをダウンロードします
危険

エクスポートされたプロジェクトには、以下は含まれません

  • バージョン管理履歴
  • main以外のブランチ
  • プロジェクトの開発ログ

3. アーカイブ(REST API経由)

自動化された高度なバックアップシナリオでは、PlayCanvas REST APIを使用します。

APIの利点

  • 自動バックアップ: スケジュールされたバックアップスクリプトを設定します
  • ブランチ選択: エクスポートするブランチを選択します
  • CI統合: 継続的インテグレーションワークフローに含めます
  • 一括操作: 複数のプロジェクトをプログラムでバックアップします

APIの使用

プロジェクトアーカイブAPIを使用すると、以下が可能になります:

# REST API経由でプロジェクトをエクスポート
curl -H "Authorization: Bearer {accessToken}" \
-H "Content-Type: application/json" \
-X POST \
-d '{"branch_id": "99999999-9999-9999-9999-999999999999"}' \
"https://playcanvas.com/api/projects/{projectId}/export"

自動化ツール

PlayCanvasは、自動バックアップを簡素化するためのオープンソースのNode.jsツールを提供しています:

  • 簡単なスクリプト作成のためのコマンドラインインターフェース
  • 複数のプロジェクトのサポート
  • 設定可能なバックアップスケジュール
  • クラウドストレージサービスとの統合

プロジェクトの復元

アーカイブファイルから

Import Archive

アーカイブからプロジェクトを復元するには:

  1. プロジェクトダッシュボードに移動します
  2. 左側にある**「プロジェクトをインポート」**をクリックします
  3. アーカイブZIPファイルを選択します
  4. 復元するプロジェクトの名前を選択します
  5. インポートが完了するまで待ちます

復元時の考慮事項

  • 完全に新しいプロジェクトが作成されます
  • 元のプロジェクトは変更されません
  • すべてのチームメンバーを再追加する必要があります
  • プロジェクト設定を再構成する必要がある場合があります
  • バージョン管理履歴は復元されません

フォークから

フォークは独立したプロジェクトであるため、フォークからの「復元」には以下が含まれます:

  1. フォークされたバックアッププロジェクトにアクセスする
  2. 変更されたアセットを手動で元のプロジェクトにコピーし戻す
  3. または、フォークされたプロジェクトを新しいメインプロジェクトとして使用する
  4. 必要に応じてチームアクセスと設定を更新する

バックアップ戦略

定期的なバックアップスケジュール

一貫したバックアップルーチンを確立します:

📅 毎日バックアップ(活発な開発の場合):

  • 主要な変更を加える前にプロジェクトをフォークします
  • 重要なマイルストーンのためにアーカイブをエクスポートします

📅 毎週バックアップ(進行中のプロジェクトの場合):

  • 包括的なアーカイブエクスポートを作成します
  • 定期的に復元手順をテストします

📆 毎月バックアップ(安定したプロジェクトの場合):

  • ドキュメント付きの完全なプロジェクトアーカイブ
  • 長期ストレージ計画

バックアップストレージ

バックアップを安全に保管します:

ローカルストレージ:

  • 外付けハードドライブまたはNASデバイス
  • 暗号化されたバックアップドライブ
  • バックアップの整合性の定期的な検証

クラウドストレージ:

  • Google Drive、Dropbox、またはOneDrive
  • AWS S3または類似のクラウドストレージサービス
  • バージョン管理されたバックアップリポジトリ

分散ストレージ:

  • 複数のバックアップ場所
  • チームメンバーのバックアップ共有
  • ディザスターリカバリのための地理的分散

高度なバックアップ手法

バージョン管理の統合

バージョン管理ワークフローとバックアップを連携させます:

  • ブランチ固有のバックアップ:異なるブランチを個別にエクスポートする
  • リリースバックアップ:すべての安定版リリースをアーカイブする
  • 機能バックアップ:主要な機能をマージする前にバックアップする

自動化されたワークフロー

自動バックアップシステムをセットアップします:

継続的インテグレーション:

  • 特定のイベントでバックアップをトリガーする
  • GitHub Actionsまたは類似のサービスと統合する
  • 自動バックアップの検証とテスト

スケジュールされたスクリプト:

  • REST APIを使用した日次/週次バックアップスクリプト
  • クラウドストレージの統合
  • バックアップのローテーションとクリーンアップ

チームバックアップの調整

チームプロジェクトの場合:

  • 指定されたバックアップマネージャー:バックアップ責任を割り当てる
  • 共有バックアップストレージ:チームがアクセスできるバックアップ場所
  • バックアップ検証:定期的なリストアテスト
  • ドキュメント:明確なバックアップとリストアの手順

リカバリ計画

ディザスターリカバリ

最悪のシナリオに備えます:

  1. 重要資産の特定:何を保持する必要があるかを決定する
  2. 目標復旧時間 (RTO):どれだけ早く復元する必要があるか
  3. 目標復旧時点 (RPO):どれくらいのデータ損失が許容できるか
  4. コミュニケーション計画:チームメンバーに通知する方法
  5. 代替ワークフロー:一時的な開発手順

リストアのテスト

定期的にバックアップシステムをテストします:

  • 部分的なリストア:個々の資産のリカバリをテストする
  • 完全なリストア:プロジェクトの完全な復元
  • チームトレーニング:チームメンバーが手順を理解していることを確認する
  • ドキュメントの更新:リカバリ手順を最新の状態に保つ
警告

テストされていないバックアップは信頼できないバックアップです。定期的なテストは、最も必要なときにバックアップ戦略が機能することを保証します。