2

セットアップは次のとおりです: Drupal プロジェクト、trunk/qa/production-ready ブランチを含む 1 つの svn リポジトリ、すべてのブランチの仮想ホスト、リポジトリからドキュメントルートにファイルをコピーするポストコミット フック。

問題は次のとおりです。Drupal Web サイトは、ソース コードだけでなく、DB データ (ノード タイプ、その設定など) にも依存していることがよくあります。

この変更をバージョン管理可能にするソリューションを探しています。ただし、データベース内のすべてのデータを「比較」するのではなく、単体テストのフィクスチャのようなものです。

バージョン管理可能で、メインのポストコミット フックの後に適用されるコンテンツ用の SQL データとファイルを含むフィクスチャのようなスクリプト。

その目的のために書かれたものはありますか、それとも何らかのビルド ツール (Apache Ant など) や単体テスト フレームワークを簡単に適用できるでしょうか。そして、このツールが drupal について知っていれば、スクリプトでvariable_set(), drupal_execute().

何か案は?それとも、これを尋ねるのではなく、今すぐコーディングを開始する必要がありますか? :)

4

5 に答える 5

2

あなたが書いたインフラストラクチャがすでにそこにあるようです。

だから私はコーディングを始めます!現時点でこれに特に適していると私が認識しているものはありません。あるとすれば、既存のインフラストラクチャでそれを実現するには、ある程度の努力が必要になると思います。したがって、コーディングを開始することは道のりのようです。

これに対する私のアプローチは、ファイル名の先頭にバージョン番号が付いた sql パッチ ファイル (db スキーマ/データをアップグレードするための sql ステートメントを含むファイル) を使用することです。データベースには、データベースのバージョンに関する情報を含む構成情報を含むテーブルが含まれています (既にある場合があります)。

その後、パッチを自動的に適用するためのさまざまな方法を使用できます。1つは、データベースのバージョンをチェックするポストコミットから呼び出すスクリプトであり、パッチを適用している最新バージョンがデータベースのバージョンよりも新しいかどうかを確認し、それを適用します(順番に)もしそうなら。

db パッチは、前述の構成テーブルのバージョン番号を更新することによって常に終了する必要があります。

このアプローチを拡張して、完全なダンプ ファイルに基づいて新しいデータベースをセットアップし、必要なパッチを適用してアップグレードする機能を含めることができます。

于 2008-12-18T12:09:33.707 に答える
1

最近の会議でこれに関するプレゼンテーションを行いました (スライド共有リンク) -- データベース スキーマの変更と設定の手間のかかる作業を行う、バージョン管理された「更新」機能を含む .install ファイルを持つサイト固有のカスタム モジュールを使用することを強くお勧めします。構成の変更。

Drupal はどのファイルが実行されたかを追跡し、大量のデータに対して長時間実行される一括操作を必要とするすべてのバッチ処理メカニズムを提供するため、.sql ファイルを保持するよりも明らかに優れています。

于 2009-01-18T04:07:39.063 に答える
0

以前:Drupalソース管理戦略?

于 2008-12-18T17:31:45.243 に答える
0

「データベースのリファクタリング」という本をチェックすることをお勧めします。

著者の1人から聞いたアドバイスは、データベースを毎回ゼロから構築するのではなく、バージョンからバージョンにアップグレードするスクリプトを用意することです。

于 2008-12-18T16:02:34.160 に答える
0

これに対する私のアプローチは、ファイル名の先頭にバージョン番号が付いた sql パッチ ファイル (db スキーマ/データをアップグレードするための sql ステートメントを含むファイル) を使用することです。

必要な DB 構造を持つファイル (xml など) と、必要な変更を適用するツールを考えていました。

はい、さらに調査した結果、他のソリューションを採用するよりもコーディングする方が簡単であることに同意します。simpletest drupal モジュールのいくつかのルーチンが役立つとは思いますが。

于 2008-12-18T12:20:15.463 に答える