スナップショット
スナップショットはサンドボックスの復旧ポイントを保存します。
シェル
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)。