Blog

[WP] MAMPにWordPress DBをリストアした後の処理をバッチで自動化する

ローカルにスナップショットを作ったのでいい気になって環境を壊しまくっている @azur256 です。おかげで、既にリストアした回数は十回以上になっています

リカバリがいくら簡単だとは言え、 DBManager で sqldumpのパス設定の変更やphpMyAdmin での設定変更を十回以上繰り返すと嫌になります。これからも何度もやることになりそうだったのでバッチ化しました。


RecoverSQL 001


この手順は [WordPress] バックアップサイトをMAMP上に作成する の手順でバックアップを戻した時に行う手順を mysql を使ってバッチを 1 回流せば良いようにしたものです。

この SQL は正直に言うと私の環境に非常に依存しているものですので、下記を読んで十分に理解できない場合にはデータベースを壊す覚悟でやってください。
まぁ、壊してもリストアできる環境になっているでしょうから、あまり恐れるものはないと思いますが(笑)

siteurlとhomeを更新するSQL

データベースをリストアした直後に phpMyAdmin で siteurl と home を変えています。これらは wp_options というテーブルにありますので、以下の SQL 文で更新できます。


簡単に説明すると

siteurl を http://localhost:8888/wordpress に
home を http://localhost:8888 に

更新する、という命令です

DBManagerの設定を変更するSQL


DBManager での変更項目は DB Options で “Path To mysqldump” と “Path To mysql”、”Path To Backup” を変えてますので、ここを SQL で変更するようにしましょう。

ただし、これはちょっと厄介です。まず、mysql を使ってみましょう。
ターミナルを立ち上げて、以下のように入力します。


USERID、DATABASE、PASSWORD は mysql のデータベース名、ユーザ名、パスワードを入れてください。(WordPress ではなく mysql ですからご注意ください)。

そうすると、以下のような画面になると思います。


ここで次のように入力してリターンを押してみましょう。

こんなのが表示されませんでしたか?


これが DBManager のオプション情報のデータです。実は、細かいところに色々と意味を持っているので、まずは正しい時のデータを先ほどのコマンドで出力しておいて、このデータを使って SQL 文を作りましょう。

作った SQL 文はこうなります。


値の中に “(ダブルクォーテーション) が出てくるので、set option_value の値は ‘(シングルクォーテーション) で囲みましょう。

このオプションの値の意味ですが、


文字列(s)が13文字で”mysqldumppath”、文字列(s)が40文字で”/Applications/MAMP/Library/bin/mysqldump” という構造になっています。そのため単純に値だけを修正するのではなくデータの長さも一緒に直す必要があります。

バッチファイルに仕込む

ここまでで SQL 文を作れたので、あとは SQL 文を実行するバッチを作ります。

今までの SQL 文を 1 つの restore_wpdb.sql というファイルに3行に分けて記述します。


次に、この SQL 文を読み込んで実行するバッチファイル restore_wpdb.sh を作ります。このファイルには以下のように記述します。


そして、このファイルが実行できるように chmod 755 あたりを設定しておけば、後はDBをリストアした後に restore_wpdb.sh を実行すれば、必要なデータが勝手に書き換えられるというわけです。

今回は、ちょっと訳のわからない内容だったかもしれませんが、 WordPress のデータは全部データベースに入っているので、いざとなったらそれを直接いじると色々なことができますよ、という内容でした。

WordPress 関連のエントリ


インストールや設定変更とデータ移行




プラグイン




バージョンアップ




カスタマイズ





Stinger 3関連





チューニング





MAMPを使ったバックアップサイトの構築





開発関連







最後まで読んでいただきありがとうございます。

follow us in feedly 左のアイコンをクリックして、このブログを Feedly に登録していただけると嬉しいです


Facebook ページでも情報を発信していますのでよろしかったら「いいね!」をお願いします

RSSリーダへの登録は こちら からどうぞ。

URL
TBURL

コメントを残す

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

フェイスブックでのコメント

Return Top