Wordmoveについての詳細は省くが、簡単に説明すると
Wordmoveとは、WordPressの環境を簡単に、移行させることができるRuby製のツール。
使用例としては、以下のような用途で使用できる。
・記事やプラグインの設定などを一度ローカルで行って問題がない場合、本番環境へ更新を行いたい。
・本番環境と同じデータやプラグインを使用し、ローカルでテストを行いたい。
インストール
※rubyがインストールされていることが前提
$ gem install wordmove
確認
$ wordmove -v
設定ファイル作成
以下のコマンドを使用することで、「Movefile」というファイルが作成される
$ wordmove init
Movefileの設定
global: sql_adapter: default # wpcliがローカルにあるなら、wpcliを設定。 local: vhost: "ローカルURL" wordpress_path: "/var/www/html/" # use an absolute path here database: name: "DB名" user: "ユーザ" password: "パスワード" host: "ホスト" production: vhost: "サイトURL" wordpress_path: "WPの絶対パス" # use an absolute path here 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の使い方