Database Search and Replace Script in PHP をコマンドラインで用いて WordPress のデータベースの内容を移行(変換)する

Database Search and Replace Script in PHP

こちらです。ダウンロードするためには登録が必須です*1

コマンドラインで用いる

このスクリプトを Webアプリ として用いるやりかたは多く見かけます。ここではコマンドラインで実行する方法を示します。この方法を用いれば様々な自動化に組み込むことが可能になるでしょう。

1. ソースコードを任意の場所に置く

公式サイトから落として解凍したスクリプトのうち、srdb.cli.phpsrdb.class.php を同一のディレクトリに置きます。この2つのファイルだけでよいです。

コマンドラインで srdb.cli.php--help オプション付きで実行して、ヘルプの内容が表示されれば正しく配置されています。

$ php srdb.cli.php --help

#####################################################################

interconnect/it Safe Search & Replace tool

#####################################################################

This script allows you to search and replace strings in your database
safely without breaking serialised PHP.
(以下省略)

2. 実行オプションを確認する

解凍した中にある README.md に書いてあるとおり*2、オプションを指定します。

実例を見たほうが早いと思いますので、実行コマンドの一例を以下に示します。

$ php srdb.cli.php --host localhost --name YOUR_WP_DB_NAME --user YOUR_WP_DB_USERNAME --pass YOUR_WP_DB_PASSWORD --port 3306 --search http://foobar.hogehoge --replace https://foobar.hogehoge --dry-run

個別のオプションの内容は以下のとおりです。

--host

データベースのホスト名を指定します。

--name

データベース名を指定します。

--user

データベースにアクセスするユーザ名を指定します。

--pass

データベースにアクセスするユーザのパスワードを指定します。

--port

データベースのポート番号を指定します。

--search

置換の対象にしたい文字列を指定します。

--replace

置換の対象にした文字列を、何という文字列に変換するかを指定します。

--dry-run

実際に置換を実行せずに、もし実行したとしたらこうなるよという仮実行をします。

--dry-run の途中で以下のようにログが出ますので、それにより置換が正しく行われるであろうことが確認できます。

wp_posts: replacing http://foobar.hogehoge with https://foobar.hogehoge

3. 実行する

オプションが設定できたら実行します。ログに Notice がたくさん出てきますが問題ありません。

*1:このスクリプトの危険性を理解しているかを確認しています

*2:あるいは --help オプションで実行した際に表示されるとおり

Powered by はてなブログ