コンテンツへスキップ

スナップショット

スナップショットはサンドボックスの復旧ポイントを保存します。

シェル
wp rudel snapshot alpha-3be7 --name=before-test

スナップショットを復元するには:

シェル
wp rudel restore alpha-3be7 --snapshot=before-test

restoreは確認を求めます。--forceは確認を省略します。スナップショット名は64文字以内で、先頭は英字または数字、その後には英字、数字、ピリオド、ハイフン、アンダースコアを使用できます。

スナップショットはサンドボックスの復旧用であり、実行時の識別情報には使いません。サンドボックスの信頼できる情報源は引き続き環境レコードです。

スナップショットに保存されるもの

  • サンドボックスのプレフィックスが付いたすべてのテーブル(ユーザーを含む)。同じデータベース内の{sandbox_prefix}snap_{hash}_にコピーされます。例: wp_b65338d_snap_3ba676_options
  • サンドボックスのテーマディレクトリ。サンドボックスディレクトリ内のsnapshots/{name}/themesにコピーされます
  • snapshots/{name}/snapshot.jsonおよびsnapshots/{name}/db_snapshot.json内のメタデータ

そのため、スナップショットの作成には、ホストデータベース内のサンドボックスの全テーブルとテーマファイルのコピーが必要です。

スナップショットに保存されないもの

  • ホストのWordPressコア
  • 共有プラグインファイル
  • 共有アップロードファイル

復元

復元時には、スナップショットのテーブルを残してサンドボックスのテーブルを削除し、スナップショットのテーブルを戻して、保存済みのコピーでサンドボックスのテーマディレクトリを置き換えます。

デフォルトでは、Rudelはまず現在の状態をpre-restore-{timestamp}-{hash}という名前のスナップショットに保存するため、復元を取り消せます。無効にするには、rudel_configでauto_snapshot_before_restoreを0に設定します。

一覧表示と削除

スナップショットを一覧表示または削除するCLIコマンドはありません。PHPからRudel::snapshots( $id )を実行すると、新しい順に一覧表示されます。スナップショットテーブルはサンドボックスの破棄時に削除されます。それまでは、自動作成されたpre-restore-*も含めて保持されます(issue #5)。