65

私は WordPress デザイナー/開発者であり、バージョン管理、特に Git の使用にますます深く関わっていますが、一部のプロジェクトでは SVN を使用しています。現在、リモートリポジトリに Beanstalk を使用しています。

すべての WordPress ファイルをレポに追加することは問題ありません。wp-config ファイルを .gitignore できることを知りたい場合は問題ありませんが、現在、私は唯一の開発者であり、これらのプロジェクトはクローズド ソースであるため、本当に少し意味があります。

WordPress は、他の CMS と同様に、データベースに大きく依存して、テキスト コンテンツと、使用している特定のプラグイン/テーマ構成に応じた多くの設定を保持しています。可能であれば、データベースでバージョン管理を使用する最良の方法は何だろうと思っています。私のMySQLサーバーはWindowsで実行されていますが(読み方:方法がわかりません)、SQLダンプを作成して、SQLダンプをリポジトリに追加できると思います。しかし、何かをライブにプッシュすると、大きなセキュリティ上の脅威が生じます。

これを行うための受け入れられた慣行はありますか?

4

5 に答える 5

21

Git リポジトリ内でデータベースをバックアップできます。もちろん、データをバイナリ形式で git に配置すると、差分 (変更) を使用してデータを効率的に格納するという git の機能がすべて失われます。したがって、一番のベスト プラクティスは、データをテキストのシリアル化された形式で保存することです。

mysqldump は、これを行うのに役立つ適切なプログラムです。しかし、それは完璧ではありません。アイテムのシリアル化の順序が乱れると (たとえば、新しいテーブルを作成した結果など)、人為的な中断が diff に入ります。収納効率が悪くなってしまいます。変更のみをシリアル化するカスタム シリアライザーを作成することもできますが、そうすると、git がすでに得意とする大変な作業を行うことになります。SQLダンプを使用するだけです。

そうは言っても、あなたがやりたいことは、開発者がデータベースをgitに入れることについて話すときに通常意味することではありません。たとえば、@eggyal によって投稿されたリンク (codinghorrorのリンク) を読むと、実際に git に配置されているのは、初期データベースを生成するために必要なスクリプトであることがわかります。データベース データにクリーンな状態を入力するスクリプトや、テスト データを入力するスクリプトなど、追加のスクリプトが存在する場合があります。このような SQL スクリプトはすべてテキスト ファイルであり、mysqldump から取得する SQL ダンプとほとんど同じ形式です。したがって、日常のデータでもそのようにできない理由はありません。

于 2012-12-03T18:42:13.227 に答える
9

MySQL や MongoDB などのバージョン管理データベースで使用できるソフトウェアは多くありません。

ただし、1 つは開発中であり、ベータ版がまもなくリリースされます。Klonio を確認してください - データベースのバージョン管理

于 2014-07-13T03:18:45.110 に答える
6

バージョン管理を使用してローカルとリモートの WordPress ブログを同期する方法の記事では、Mercurial を使用して WordPress ブログの 2 つのインスタンス (開発、運用) 間の同期を自動化する方法についてアドバイスを提供しています。このシナリオでは、Git と Mercurial は非常に似ていると述べています。

ステップ 4 (データベースの同期) はここで重要です。

データベースの内容は、リビジョン コントロールによって追跡されるファイルにエクスポートされます。変更をプルするたびに、データベースの内容がこのファイルに置き換えられ、データベースが最新の状態になります。

次に、競合とジョブのスクリプト部分について詳しく説明します。

よく知らない場合は、Mercurialのバージョン管理チュートリアルがあります。

于 2013-06-26T13:38:33.117 に答える