Database Search and Replace Script in PHP
こちらです。ダウンロードするためには登録が必須です*1。
コマンドラインで用いる
このスクリプトを Webアプリ として用いるやりかたは多く見かけます。ここではコマンドラインで実行する方法を示します。この方法を用いれば様々な自動化に組み込むことが可能になるでしょう。
1. ソースコードを任意の場所に置く
公式サイトから落として解凍したスクリプトのうち、srdb.cli.php
と srdb.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
がたくさん出てきますが問題ありません。