ローカルから本番へ:「公開する」が置き換えるもの
「公開する」で「すべて」を選ぶと、本番サイトのデータベースとファイルが手元のコピーに置き換わります。本番の投稿、固定ページ、設定、ユーザー、コメント、WooCommerce の注文は、手元のデータベースの内容に置き換わり、統合はされません。ファイルのみは、テーマ・プラグイン・メディアだけを送り、本番のデータベースには触れません。このチュートリアルでは各ステップを順に追い、実際の注文があるストアを守る方法を説明します。
著者:Oberon Lai。私は ShipPress(Codotx, LLC)の開発者で、これは自社の製品です。
-
「公開する」を押すと何が起きるか
ShipPress は Mac 上で SQLite データベースの WordPress を動かすため、本番ホストにファイルのコピーをそのまま渡すことはできません。公開するを押すと:
- バンドルを作ります。手元のデータベース全体を MySQL ダンプとして書き出し、ローカルのアドレスを本番のアドレスに変え(シリアライズされたデータの中も)、
wp-contentをまとめます。 - ローカル専用の部分は除きます。SQLite プラグイン、ローカルのサインイン補助、ShipPress 自身の編集補助、エージェント用フォルダ、
wp-config.phpは送られません。データベースの認証情報はホスト側のものがそのまま残ります。 - 先に本番データベースのコピーを保存します(InstaWP と SSH のホスト)。手元のサイト内の
.aiwp/snapshots/remote/に、新しい 5 件まで保存します。書き出しに失敗したり空だったりすると、公開はそこで止まり、何も変わりません。 - ファイルとデータベースをホストに送り、テーブル接頭辞を本番のものに合わせ、アドレスを置き換え、キャッシュを消します。
- SSH でデータベースの取り込みに失敗した場合は、保存しておいたコピーが自動で戻されます。InstaWP では、コピーの場所が表示されます。
AI Worker がサイトを編集中、またはスケジュールされた処理(バックアップ、更新)が動いている間は、公開はそれが終わるまで待ちます。作業途中の変更が公開されることはありません。
- バンドルを作ります。手元のデータベース全体を MySQL ダンプとして書き出し、ローカルのアドレスを本番のアドレスに変え(シリアライズされたデータの中も)、
-
置き換わるもの、残るもの
公開の画面のその他のオプションで、送る内容を選びます。上級モードでは、ファイルをテーマ・プラグイン・メディアに絞ることもできます。
選択 本番のデータベース 本番のファイル(wp-content) すべて(既定) 手元のデータベースに置き換わる 手元のファイルがコピーされる ファイルのみ そのまま:投稿、固定ページ、設定、ユーザー、注文は残る テーマ、プラグイン、メディアが送られる データベースのみ 置き換わる そのまま 本番のデータにとっては、次の意味になります:
本番のデータ すべて ファイルのみ データベースのみ WooCommerce の注文と顧客 置き換わる 残る 置き換わる ユーザーとパスワード 置き換わる 残る 置き換わる コメント 置き換わる 残る 置き換わる 投稿、固定ページ、設定、メニュー 置き換わる 残る 置き換わる - ShipPress はテーブルを絞り込んだり、行を統合したりはしません。本番にしかない WooCommerce の注文は手元のダンプに入っていないため、「すべて」で送ったあと本番のデータベースからなくなります。先に保存した本番データベースのコピーには残っています。
- SSH のホストでは、ファイルは本番の
wp-contentの上にコピーされ、本番にしかないファイルは削除されません。「ファイルのみ」では、手元と同じ名前の本番ファイルだけが上書きされます。
-
本番サイトを Mac に取り込む
アプリ → すべてのサイト → ホストから取り込む(上級モード)で、本番サイトをダウンロードします。新しいサイトとして取り込めば、開いているサイトには触れません。開いているサイトに上書きを選ぶ場合は、手元のサイトが置き換わることを理解した、というチェックが必要です。
ShipPress は本番のデータベースと
wp-contentを読み取り、手元に取り込みます。実行されるのはテーブルと行の命令だけで、ファイルは安全に展開され(パスをすり抜ける指定、wp-config.php、ShipPress のローカル補助ファイルは入りません)、本番のアドレスは手元のアドレスに変わります。取り込んだデータベースに管理者がいなければ、サインイン用にローカルのadminユーザーが作られます。公開と同じく、ファイルだけ、データベースだけに絞ることもできます。開いているサイトを置き換える前に、ShipPress は pre-pull という名前の復元ポイントを保存し、取り込みに失敗したら自動で戻します。取り込めるのは InstaWP と、SSH でつながるホストです。Hostinger で取り込むには SSH が必要で、Business プラン以上で使えます。
- プライバシー。全体を取り込むと、顧客データ(注文、メール、住所)がノートパソコンに入ります。不要なら「ファイルのみ」で取り込みます。
- 取り込みはその時点のスナップショットです。そのあとに本番で起きたことはコピーに入っておらず、あとで「すべて」を送ると置き換わります。
-
元に戻す:復元ポイントと本番データベースのコピー
ShipPress は、AI が変更を加えるたび、取り込みの前、復元の前、そして手動で保存したときに、パソコン上に復元ポイントを保存します。既定ではサイトごとに新しい 30 件(最小 5 件)を保持します。復元ポイントには、手元のデータベース、自作のテーマ、メディアのフォルダが入ります。プラグインと WordPress 付属のテーマは入らず、本番サイトには一切触れません。復元の前にもう一つ復元ポイントを保存するので、復元自体も元に戻せます。
本番サイトには二つの備えがあります:
- 保存された本番データベースのコピー(InstaWP と SSH):手元のサイト内
.aiwp/snapshots/remote/にある.sqlファイルです。SSH のwp db importか、ホストのデータベースツールで戻します。データベースのコピーのみで、ファイルは含みません。 - ホスト自身のバックアップ。Hostinger では ShipPress が API 経由でデータベースのバックアップを取れないため、代わりに hPanel のバックアップのページを開きます。「すべて」を送る前に、そこでバックアップを取ってください。
- 保存された本番データベースのコピー(InstaWP と SSH):手元のサイト内
-
実データがあるサイトの安全な手順
実際の注文やユーザーがまだない新しいサイト:「すべて」で問題ありません。公開の画面でアドレスを確認し、公開するを押して、本番サイトを開き、テスト注文を入れます。
すでに実データがあるサイト:
- 先にステージングで試します。ホストにステージング用のサイトを作るか、使い捨ての InstaWP サイトを用意し、そこに公開して、注文・ユーザー・コメントを一つずつ確認してから本番に触れます。
- 何が変わったかを見分けます。テーマ、デザイン、コードはファイルにあります。ページ、投稿、商品、設定、メニューはデータベースにあります。
- デザインやコードだけ変えたなら、「公開する → その他のオプション → ファイルのみ」を使います。本番の注文、ユーザー、コメント、コンテンツはそのままです。テーマだけ変えたなら、テーマだけにチェックを入れ(上級モード)、WooCommerce などのプラグインのファイルが手元のバージョンに置き換わらないようにします。
- データベースの内容を変えたなら、同じ変更を本番の wp-admin で行います。まず Mac 上のコピーで試します。注文を受けているストアに「すべて」を送ってはいけません。
- どうしてもデータベースを本番ストアに送るときは、短いメンテナンス時間として扱います。先にホストの管理画面でバックアップを取ります。編集を始める直前に「すべて」を取り込み、コピーに最新の注文とユーザーが入るようにします。編集は短く:取り込み後に入った注文は、送信後に消えて、保存された本番データベースのコピーにだけ残ります。公開したら、注文、ユーザー、最近のコメントを確認します。
- 結果を確認します。公開後のメッセージに、以前の本番データベースの保存先が出ます。サイトを確認し終えるまで、そのファイルは残しておきます。
- 編集を続けるときは、古いコピーで作業せず、もう一度取り込みます。
-
ShipPress がまだできないこと
これは私の口から伝えておきたいことです:
- 統合もテーブルの絞り込みもありません。「本番の注文とユーザーを残す」スイッチはありません。「すべて」と「データベースのみ」はすべてのテーブルを置き換えます。
- 警告は一般的な文言です。公開の画面は「すべてを上書きする」と言うだけで、注文・ユーザー・コメントとは書きません。
- 保存された本番データベースをワンクリックで戻す機能はなく、保持されるのは新しい 5 件だけです。
- アプリ内にステージングサイトも、ローカルと本番の比較もありません。
- 送信中に入った注文は失われることがあります。本番のデータベースを先にコピーし、あとで置き換えるためです。
無料アドレスはまた別の話です。ファイルだけを公開するもので、WooCommerce ストア向けではないため、ここまでの話は当てはまりません。
-
次のステップ
はじめての方は、ShipPress をインストール(無料、Mac)してから、公開するとホストからサイトをダウンロードをご覧ください。
ShipPress でストアを運営していて、これらの制限が気になる方は、どんな機能がほしいか教えてください。テーブルの絞り込み、復元ボタン、本番の注文数を示す警告など。お問い合わせからどうぞ。みなさんが本当に必要とするものを作りたいと思っています。
— Oberon Lai(ShipPress 開発者)