2011-05-29 67 views

回答

0

有几个选项,这是deployment module这是阿尔法,但显然工程很好。然后是普通的旧svn(甚至rsync)。这样做可以让工作非常快速,并为您提供额外的源代码管理奖励,但您需要手动传输数据库。

最后但并非最不重要的是,3中提到的最强大的方法是drush

无论你选择什么取决于你愿意投资这一步骤的时间,因为短期而言,它们都涉及多一点时间,而不仅仅是复制另一个文件夹中的一个站点,但一旦你完成任务就会自动完成任务,所以长期您可以轻松地重复部署和是这些工具将使您节省时间。

祝你好运!

1

您需要某种version control system(VCS)用于您的项目代码。由于Drupal.org现在使用Git这是非常好的,真棒,你也应该。 Git有几种托管解决方案,最受欢迎似乎是GitHub

在您的代码存储库中,我建议不要放置整个站点目录,而只是放置您自己的自定义代码。无论使用VCS,这里是我把我的代码库

  • 用来下载Drupal核心,的contrib模块的contrib主题和应用补丁(如果需要)
  • 一个module文件夹只有A .make文件自定义模块
  • 一个themes文件夹仅在.make文件中的自定义主题
  • 构建脚本来
    • 运行drush make下载Drupal核心和贡献的(VCS忽略)dist文件夹
    • modules文件夹复制到dist/sites/all/modules/custom
    • themes文件夹复制到到dist/sites/all/themes/custom

这对

  • 正确追踪更改您的项目自定义代码
  • 正确trac ķ使用的核心和贡献版本(在.make文件)
  • prevent core or contribs hack但在需要时允许补丁(Drush使需要应用的修补处可用可公开访问的HTTP地址)

对于构建脚本,我使用Phing,但可以使用任何脚本语言(ant,bash,php,ruby等)。通过一些额外的工作,构建脚本还可以用于运行自动化测试(SimpleTest)和代码验证(php -lCoder Review)。最后,构建脚本会生成并更新dist文件夹以便部署。

对于多开发人员项目,我尝试尽可能多地将配置导出到代码中,而不是在数据库级别进行存储。主要通过使用可导出Features模块以及通过具有项目特定配置文件来通过其hook_installhook_update_N实现来定义和更新不可导出配置。请参阅The Development -> Staging -> Production Workflow Problem in DrupalCode driven development: using Features effectively in Drupal 6 and 7演示文稿。