Kin­sta から Shifter ヘデータ移行の検証をしてみた

前置きと注意事項

本稿は Shifter Advent Cal­en­dar 2021 #JP_GetShifter 5日目の記事です。
飲み屋で飲んでいたら隣のお客さんから «アムスのコーヒーショップにいそう»と言われた風体の者がお送りする,今回はいわゆる「やってみた」系の記事です。本稿の末尾でも書いている通り,非公式かつこの記事に記載の方法を実行する際は自己責任です。失敗してもデータを消失しても泣かない人向けの記事です。

ちなみに,某インド・ネパールカレー屋さんでは, «アナタ,パキスタン人? パキスタン人,そういう髭の伸ばし方スル» と言われた経験もあり,僕の国籍自体が怪しい感じです。

執筆理由

Shifter 上の Word­Press から wp-con­tent フォルダ配下 や DB のデータ を丸っとエクスポートしてみるShifer 上の Word­Press サイトを Kin­sta へ移行する という記事がちょうど1年前に上がっていたので、これに習って Shifter → Kin­sta がいけるならその逆も余裕でしょと思ったのが運の尽き。

Kin­sta では All-in-One WP Migra­tion 等のサイト全体に対するバックアップ・データエクスポート用のプラグインを使えないようなので,データベース,画像,プラグイン,テーマを個別にエクスポートをしてローカルで合成。その後,All-in-One WP Migra­tion でエクスポートし,Shifter へインポートという手順で勧める必要があります。

Kin­sta での作業

まずは Kin­sta のコントロールパネル: My Kin­sta にログインをして

Word­Press のダッシュボードへログインします。

URL は http://migratingwordpresssite.kinsta.cloud です

今回は,テーマやプラグインのコピーを行わず,インポート先で新たにインストールするという方法を採るので,以下の2つのプラグインをインストールします。

テーマは他のファイルも取りたい場合は Advanced File Man­ager をインストールするといいかもしれません。WordPress のダッシュボードからじゃなくとも,Kinsta のサーバへ SSH 接続して, wp-cli と rsync コマンドを活用してデータをコピーしてくるという方法もあります。

データベースをエクスポートする

サイドバーの [WP phpMy­Ad­min]→ [Enter phpMy­Ad­min] をクリックする

phpMy­Ad­min ウィンドウが新たに開くので [Export] タブを選択する

Export meth­od を確認し, [Go] ボタンをクリックして SQL ファイルをダウンロードする

ファイルは migratingwordpresssite.sql とします

メディアをエクスポートする

Media → Export へ進んで [Down­load Zip] をクリックする

[Folder Struc­ture] は [Nes­ted folders] を選択する。Compress はどちらでもよい。

ファイルは media_library_export-migrating_wordpress_site-2021_12_04_11_35_15.zip とします。

ファイルの準備ができました。

ローカル環境での作業

Word­Press を起動する

Wock­er でも VCCW でも Valet でもよいですけれど、今回は Loc­al by Fly­wheel を使います。起動方法などはアプリケーションのドキュメントをご参照ください。

初期のデータを削除する

wp-cli を使って削除します。サイト名を右クリックして [Open Siet Shell] をクリック。

Last login: Sat Dec  4 19:59:41 on ttys007
~/Library/Application\ Support/Local/ssh-entry/_*******.sh; exit

% ~/Library/Application\ Support/Local/ssh-entry/_*******.sh; exit
-n -e
Setting Local environment variables...
----
WP-CLI:   WP-CLI 2.5.0
Composer: 2.1.5 2021-07-23
PHP:      7.3.5
MySQL:    mysql  Ver 8.0.16 for macos10.14 on x86_64 (MySQL Community Server - GPL)
----
Launching shell: /usr/local/bin/zsh ...

サイトにシェルログインができました。

データベースをインポートすると URL が変わってしまいます。あとで置換するので現在の値を取得して,テキストエディタ等にメモをします。ここでは http://kinstatoshifter.localという値がサイトの URL です。

% wp option get home
http://kinstatoshifter.local

続いてデータベースをリセットします。

% wp db reset
Are you sure you want to reset the 'local' database? [y/n] y
Success: Database reset.

Kin­sta からエクスポートしたデータベースをインポートする

データベースのリセットができたら Kin­sta からエクスポートしたデータベースをインポートします

% wp db import migratingwordpresssite.sql
Success: Imported from 'migratingwordpresssite'.

% wp option get home
http://migratingwordpresssite.kinsta.cloud

URL を更新する

% wp search-replace http://migratingwordpresssite.kinsta.cloud http://kinstatoshifter.local --skip-columns=guid

+------------------+-----------------------+--------------+------+
| Table            | Column                | Replacements | Type |
+------------------+-----------------------+--------------+------+
| wp_commentmeta   | meta_key              | 0            | SQL  |
[......]
| wp_options       | option_value          | 4            | PHP  |
[......]
| wp_users         | display_name          | 0            | SQL  |
+------------------+-----------------------+--------------+------+
Success: Made 8 replacements.

% wp option get home
http://kinstatoshifter.local

Kin­sta からエクスポートしたメディアをインポートする

ダウンロードしたmedia_library_export-migrating_wordpress_site-2021_12_04_11_35_15.zip を展開して、中身を wp-content/uploads/ 内へコピーします。

画像のサムネイルを 再生成する

% wp media regenerate

Do you really want to regenerate all images? [y/n] y
Found 37 images to regenerate.
1/37 Regenerated thumbnails for "dsc20050604_133440_34211" (ID 1688).
[......]
37/37 Regenerated thumbnails for "spectacles" (ID 543).
Success: Regenerated 37 of 37 images.

追加のプラグイン・テーマをインストールする

今回はテーマやプラグインを Kin­sta からダウンロードしていないので,必要に応じてプラグインやテーマインストールします。

All-in-One WP Migra­tion プラグインを使ってデータをエクスポートする

All-in-One WP Migra­tion プラグインをインストール・有効化します

サイドバーの [All-in-One WP Migra­tion] → [Export] を選択します。除外するファイルはないので,このまま [File] を選択してデータをエクスポートします。
kinstatoshifter.local-20211204-114324-lgxouo.wpressというファイルがエクスポートされました。

Shifter での作業

ここからはいつも通りの作業です。

Word­Press を起動する

All-in-One WP Migra­tion プラグインをインストール・有効化する

ローカル環境からエクスポートしたAll-in-One WP Migra­tion のデータをインポートする

Shifter 環境ではこのメッセージがどうしても出てしまいます。 [I have enough disk space] をクリックして処理を続行します
[Proceed]をクリックします
[Finish]をクリックします

Arti­fact を Build し,Publish する

Shifter ダッシュボードに戻り,[Build Deploy] ボタンをクリックします

[Stop Word­Press] をクリックして,サイトを静的化します

Deploys の状態が [Pub­lished] となっていることを確認して,サイトの URL をクリックし、アクセス。表示の状態を確認します。

Kin­sta → Shiter ヘのマイグレーションは以上です。

最後に

いやあ,マイグレーションプラグインって,本当に便利ですね。文明の利器を賢く使ってマイグレーションをやっていきましょう。

本稿に記載されている内容は全て当時のものです。バージョン変更により画面・機能などが変わっている可能性があります。また,作業の実行は at own risk でお願いします。データの移行に失敗してデータを消失しても一切の責任は取りかねます。また,本稿の内容については非公式のため, Shifter のサポートにもご相談されぬよう。

Gen­er­ated by Algo­lia + Search with Algo­lia Instant­search Blocks

aka Written by: