注意!! この投稿は2年と10ヶ月くらい前に公開したものです。
そのため正常に動作しないかもしれないので、ご注意ください。

[WP-CLIアドベントカレンダー2014: 21日目] git commit するとMySQLのダンプを出力してそれも一緒にgit commitしてくれちゃうWP-CLIのコミュニティパッケージコマンドの紹介

WP-CLIアドベントカレンダー2014の21日目です。

今日はgit commit するとMySQLのダンプを出力してそれも一緒にgit commitしてくれちゃうコマンドのwp-cli-git-commandの紹介です。

これも前回同様にWP-CLIにもとから備わっているコマンドではなく、コミュニティパッケージという形の追加のコマンドです。

追加方法は前回の公式サイトの英語の説明を参考にしてください。

追加したら、WordPressのルートディレクトリにcdして

$ wp git init

とします。するってえと、

Success: Created new Git Repository.
Success: Pre-commit 'pre-commit-mysql-dump' created.
Success: Pre-commit linked in 'pre-commit'.

のようになります。すでにディレクトリがGitで管理されていれば、最初の「Success: Created new Git Repository.」は表示されず、既存のGitリポジトリにこのプリコミットコマンドが追加されます。

んでは、なにかファイルを 一つ 変更していつものようにコミットしてみます。

$ git commit -am 'test commit'
Success: Exported to .db/mysql_dump.sql
[master 4cef1cf] test commit
2 files changed, 1 insertion(+), 2 deletions(-)

MySQLのdumpファイルが.db/mysql_dump.sqlに作られましたね。

ところで、ファイルは一つしか変更してないのに、 2 files となっています。どのファイルが変更されたのか見てみます。

git diff HEAD^ --name-only
.db/mysql_dump.sql
wp-config.php

.db/mysql_dump.sqlもコミットされてます! ということでMySQLのダンプファイルも自動的にコミットしてくれるんですな!

ではMySQLのデータベースを一つ前の状態に戻してみます。

$ git checkout HEAD^ .db/mysql_dump.sql

と、一つ前をチェックアウトして、WP-CLIコマンドでデータベースのダンプファイルを読み込みます。

$ wp db import .db/mysql_dump.sql
Success: Imported from .db/mysql_dump.sql

以上!