在多个安装中管理自定义模块


19

我们有一些用于多个站点的自定义模块。那些不能作为贡献模块发布,例如,因为它们是特定于客户的,做出的假设不适用于贡献模块等等。

我知道以下可能的解决方法:

  • 复制并粘贴到周围。显然很难在所有安装上都使模块保持最新。

  • 只安装一个多站点,但这并不总是可能的。

  • 使用git子模块,但是它们很讨厌,很容易忘记更新它们,并且并不总是受支持(例如Pantheon)

  • Drush make脚本以从通用git存储库中签出。为此,您AFAIK需要在整个站点上使用drush make,我们目前不使用它。

  • http://drupal.org/project/fserver。我还没有尝试过,有人知道它是否足够稳定吗?项目描述听起来不太乐观,也没有7.x版本。

还有什么/更好的吗?您喜欢什么,为什么?


我认为做这些事情的新方法是使用应用程序:drupal.org/project/apps
mojzis 2012年

Answers:


10

Drush化妆的方法,因为你已经提到的,是我的团队正在使用的版本。

即使您当前未在站点上使用drush make,但如果您愿意的话,转到该工作流程应该相对简单,因为drush还提供了drush make-generate,它将从现有站点生成make文件。因此,无需觉得仅对新网站来说就值得。:)


谢谢,我决定接受您的回答。我需要习惯繁琐的制作,想出如何在具有许多自定义模块的大型项目中最好地解决这个问题,并在开始使用它之前说服我的同事们;)您是否有任何资源可以维护网站,例如更新版本的最佳方法,是重建网站。
贝迪尔(Berdir)2012年

2
我没有任何资源,所以我写了一个:) drupal.stackexchange.com/questions/33403/…当然,如果您愿意,可以随意提出更深层次的问题。:)
Letharion 2012年

1

如果所有站点都在同一台服务器上,则可以用来symlink从中央位置加载模块,或者rsync要处理多个服务器。

这将解决分发文件的问题,但是您仍然需要触发升级。可以使用drush,一个简单的脚本(每个站点一个接一个地调用升级)将其自动化。


0

似乎您几乎对所有解决方案都非常满意。当我阅读它时,首先想到的是它的另外两个解决方案,例如rsyncsymlink但又不容易维护。

然后记住关于Git Deploy的模块,它实际上是与git子模块的组合。

我还没有尝试过这个想法,但是它可以起作用,或者至少为您提供一些线索,说明如何使用它破解自己的系统。


Git deploy公开了contrib模块的版本信息,但是我们没有contrib模块,因此我认为这不会有所帮助。
Berdir 2012年

0

我为所有贡献/自定义模块使用单独的git存储库,其中每个贡献或自定义模块位于单独的分支(而不是子模块)中。

这是git merge在这里的工作方式:

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

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

大师->发布

和bash / drush脚本来更新分支



嗯 因此,我基本上可以将另一个站点添加为远程站点,然后从那里导入一个自定义模块分支。这可能有效,但是相对复杂。
Berdir 2012年

0

我使用SVN代替Git来存储我们定制开发的模块。从本地提交更改后,我只运行了bash脚本,该脚本在预定义的服务器位置运行“ svn update”命令。每当我将模块部署到新位置时,我都会更新bash脚本。这实际上是一个简单的设置,可以轻松进行。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.