私はこの質問が何千回も質問されてきたことを知っていますが、私はWordPressを使って作業するときにGitを最大限に活用する方法を考え出しています。
私はウェブを精査して何十もの記事を読んだが、それらはすべてそのトピックを簡単に網羅しているようだ。これは私が最近読んだ中で最も注目すべきもののいくつかです。
- FTPの代わりにgitを使ってあなたのカスタムWordPressテーマを管理する
現在、私のワークフローはこのようになっています。
Gitがこのプロセスを合理化できることを私は理解しています。これを行うための最善の方法は、追跡する必要がない特定のディレクトリを無視する.gitignoreファイルと、ローカルとリモートの両方のwp-config.phpファイルを用意することです。
しかし、データベースをどのように処理しますか?クライアントは通常、変更を加えます(ポスト/ページ/プラグイン)。それでもリモートデータベースからエクスポートして、ローカルサーバーにインポートする必要がありますか。
誰かが私に最適なワークフローをここに提案できますか?そして階段を歩きます。
また、GitHubとは異なり、Bitbucketをプライベートレポジトリとして無料で使用することをお勧めします。
任意の助けがいただければ幸いです。
前もって感謝します!
私は WP Migrate DB Pro の開発者の一人で、@ Ennuiの質問に回答したいと思います。
「実行するdb url replaceスクリプトがシリアル化された文字列を考慮に入れているかどうか知っていますか?」
はい、それはシリアル化されたデータを処理します。実際、これが私が2009年に無料版のプラグインを開発した主な理由です。:)
残念ながら、私の評価は41しかないので、@ Ennuiのコメントに返信することはできませんでした。そのために残念。
答えではなく議論や意見を求めるようなものであるように思われるので、私はこれを「建設的ではない」と締めくくることに投票しています。しかし...
それは私のワークフローがどのように見えるかではありません、そしてそれは私のアプローチ(そして答え)を今までのところ他の答えの大部分とは異なっています。
基本的に、私たちがサイトを引き渡すまでクライアントをできるだけ自分のものから遠ざけます。
コードは一方向に移動します - ローカルからステージングまたはプロダクションへ。それは反対方向に動くことはありません。それはあなたのステップのいくつかを排除し、私に心の安らぎを与えます。私は自分のコードにクライアントがいじっていることに責任を負いたくないし、ハッキングされたファイルをインポートしたくもない。これはゼロではない可能性である。
そして、データベースは、仮にあったとしても一度だけ移動するため、問題が大幅に軽減されます。だから私はデータベースを移動する必要性を減らすか取り除くことによって「データベース移動」問題を管理していると思います。また、発生する可能性があるデータベース破損の問題を軽減し、ハッキングをインポートする可能性を低減します。
確かに、私は本番サイト - パーマリンク、メニューなど - を設定する必要がありますが、それは私が本番サイトで作業することを強いるので、私はそれを一種のデバッグと見なします。それは私が物事が彼らがするべきである方法で生産現場で働くことを確認するのを助けます。
私は最近、これに関して多くのテストを行いましたが、ここで私が使用するワークフローは、あなたが求めていることとほぼ同じです:
私はdb移行ツールに精通していませんが、このワークフローへの素晴らしい追加になるでしょう。
ワークフローの詳細を以下に示します http://geekpad.ca/blog/post/maintainble-portable-wordpress-using-composer-wp-cli
岩盤スタック を見てください。 Wordpressとサードパーティのプラグインのバージョンを管理するためにcomposerを使用し、デプロイ用のcapistrano、開発用のローカル仮想サーバーを含むサーバーのセットアップ用のvagrant/ansibleも含まれています。
https://github.com/nathanielks/Wordpress-Capistrano-Deploy
私は(まだ)これを自分で試したことはありませんが、DBを含むすべてを展開すると主張しています。
データベースの「クローン作成」については、WP Migrate DB Proを使用します。 http://deliciousbrains.com/wp-migrate-db-pro/ /
これは有料サービスですが、それほど費用はかかりません。データベースを開発者からライブサーバーに、またはその逆に簡単にプルまたはプッシュできます。それはURLと、途中で変更を必要とする他のすべてを変更します。