Wordmoveについての詳細は省くが、簡単に説明すると
Wordmoveとは、WordPressの環境を簡単に、移行させることができるRuby製のツール。
github.com
使用例としては、以下のような用途で使用できる。
・記事やプラグインの設定などを一度ローカルで行って問題がない場合、本番環境へ更新を行いたい。
・本番環境と同じデータやプラグインを使用し、ローカルでテストを行いたい。
インストール
※rubyがインストールされていることが前提
$ gem install wordmove
設定ファイル作成
以下のコマンドを使用することで、「Movefile」というファイルが作成される
$ wordmove init
Movefileの設定
global:
sql_adapter: default
local:
vhost: "ローカルURL"
wordpress_path: "/var/www/html/"
database:
name: "DB名"
user: "ユーザ"
password: "パスワード"
host: "ホスト"
production:
vhost: "サイトURL"
wordpress_path: "WPの絶対パス"
database:
name: "DB名"
user: "ユーザ"
password: "パスワード"
host: "ホスト"
exclude:
- ".git/"
- ".gitignore"
- ".sass-cache/"
- "node_modules/"
- "bin/"
- "tmp/*"
- "Gemfile*"
- "Movefile"
- "wp-config.php"
- "wp-content/*.sql"
ssh:
host: "リモートホスト"
user: "ユーザ"
port: 22
rsync_options: "--verbose"
forbid:
push:
db: true
plugins: true
themes: true
languages: true
uploads: true
mu-plugins: true
pull:
db: false
plugins: false
themes: false
languages: false
uploads: false
mu-plugins: false
globalセクションの「sql_adapter」では「default」か「wpcli」を選択できる。
sql_adapterの中身は、ローカルと本番でURLの変換するだけの機能。
defaultだと、dump.sqlテキスト内を走査して、文字列変換をしている。
wpcliではwp-cliのコマンドを使って、文字列変換をしている。
また他のサイトでは、あまり紹介していないが
間違って本番にpushしてしまわないようにforbidセクションを使用すれば、細かくpush可否の制限ができる。
Dockerイメージも公開されており、Dockerで開発環境を作る際は、すごい便利。
https://hub.docker.com/r/welaika/wordmove/
[リモートからローカルへ]
例1)DBのみをプルする例
$ wordmove pull -e production -d
例2)すべてをプル
$ wordmove pull -e production -all
例3)検証モードでプル(実際にはプルしない)
$ wordmove pull -e production -all -s
[ローカルからリモートへ]
例)DBのみをプッシュする例
$ wordmove push -e production -d
[オプション一覧]
--all # ファイル全部
-w # `/wp-content/`ディレクトリ(除外したファイル以外)のみ
-u # `/wp-content/upload/`ディレクトリのみ
-t # `/wp-content/theme/`のみ
-p # `/wp-content/plugins/`のみ
-l # `/wp-content/language/`のみ
-d # データベースファイルのみ
-v # [TBD] verbose
-s # dry runモードで実行、実際にはファイル転送されない
-e # 環境(push先・pull元)を指定
-c # `wp-config.php`のみ
-h # wordmoveの使い方
[参考]
Wordmoveの基本操作 - Qiita