複数のインストールにわたってカスタムモジュールを管理する


19

複数のサイトに使用されるいくつかのカスタムモジュールがあります。これらは、たとえばクライアント固有であるため、提供されたモジュールとしてリリースすることはできません。提供されたモジュールなどでは機能しないという仮定を立てます。

これに対処する次の可能性について知っています。

  • コピーして貼り付けます。すべてのインストールでモジュールを最新の状態に保つのが明らかに難しくなります。

  • 単一のマルチサイトインストールがありますが、これは常に可能とは限りません。

  • gitサブモジュールを使用しますが、それらは厄介な場合があり、更新するのを忘れがちであり、常にサポートされているわけではありません(例:Pantheon)

  • 一般的なgitリポジトリからチェックアウトするmakeスクリプトを削除します。そのためには、サイト全体でdrush makeを使用する必要がありますが、現在は使用していません。

  • http://drupal.org/project/fserver。まだ試していませんが、十分に安定しているかどうかを誰かが知っていますか?プロジェクトの説明はあまり有望ではなく、7.xバージョンはありません。

他に何か良いですか?何が好きで、なぜですか?


これらのことを行う新しい方法はアプリであると思います:drupal.org/project/apps
mojzis

回答:


10

Drushのメイクアプローチは、すでに述べてきたように、私のチームが使用しているバージョンです。

現在サイトでDrush Makeを使用していない場合でも、Drushが既存のサイトからMakeファイルを生成するDrush Make-Generateを提供するため、必要に応じてこのワークフローに移行するのは比較的簡単です。したがって、新しいサイトにのみ価値があると感じる必要はありません。:)


ありがとう、私はあなたの答えを受け入れることにしました。makeを使いこなすのに慣れ、多くのカスタムモジュールを含む大規模なプロジェクトでこれをうまく処理する方法を見つけ、これを使用する前に同僚に納得させる必要があります;)サイト、たとえばバージョンを更新する最適な方法、サイトを再構築します。
ベルディール

2
私はリソースを持っていなかったので、1つ書きました:) drupal.stackexchange.com/questions/33403/…もちろん、必要に応じて、より深い質問で自由にコメントしてください。:)
レサリオン

1

すべてのサイトが同じサーバー上にある場合symlink、中央の場所からモジュールをロードしたりrsync、複数のサーバーを扱っている場合に使用できます。

これにより、ファイルの配布の問題は解決しますが、アップグレードを実行する必要があります。これはdrush、すべてのサイトで1つずつアップグレードを呼び出す簡単なスクリプトとともに、で自動化できます。


0

あなたはほとんどすべてのソリューションをほとんど見ているようです。私はそれを読んだとき、最初にどのような私の心の中のようなその2つの他のソリューションを来るrsyncsymlinkが、再び、それは維持するために快適ではありません。

その後、Gitサブモジュールと実際に素晴らしいコンボであるそのモジュールGit Deployについて思い出しました。

私はまだこのアイデアを試していませんが、うまくいく可能性があります。少なくとも、自分のシステムを実行するためにそれをハックする方法の手がかりを与えることができます。


Git deployはcontribモジュールのバージョン情報を公開しますが、contribモジュールがないため、役立つとは思いません。
ベルディール

0

私はすべての貢献/カスタムモジュールに個別のgitリポジトリを使用します。貢献またはカスタムモジュールはそれぞれ(サブモジュールではなく)個別のブランチにあります。

git mergeの仕組みは次のとおりです。

マスター

      <-- custom
        <-- custom module 1
        <-- custom module 2    

      <-- contrib
        <-- contrib module 1
        <-- contrib module 2     

マスター->リリース

ブランチを更新するbash / drushスクリプト


私の解決策は、この記事に基づいていますnvie.com/posts/a-successful-git-branching-model
Refineo

ふむ したがって、基本的に別のサイトをリモートとして追加し、そこからカスタムモジュールブランチをインポートできます。それは機能しますが、比較的複雑です。
ベルディール

0

Gitの代わりにSVNを使用して、カスタム開発モジュールを保存します。localhostから変更をコミットした後、定義済みのサーバーの場所で「svn update」コマンドを実行するbashスクリプトを実行するだけです。モジュールを新しい場所にデプロイするたびに、bashスクリプトを更新します。それは本当に簡単なセットアップであり、手間をかけずに動作します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.