2011-02-03 69 views
4

嘿,我开始在drupal6开发新网站,我想知道什么是设置开发/舞台/制作环境的最佳方式...... svn?在线付费服务(我看到了需要付钱做东西的serval soultions网站)bash脚本进行同步? 请帮忙drupal开发/舞台/制作设置

回答

1

这可能是关于Drupal的薄雾问题之一 - 这是Drupal相当薄弱的一个领域。您可能需要查看Aegir。这是一个基于Drupal的平台,旨在简化部署和更新。

它采用Drush在幕后,所以如果埃吉尔似乎矫枉过正满足您的需求,Drush可能是你所需要的。 Drush是Drupal的命令行shell,它允许您使用命令提示符或批处理脚本在Drupal站点上执行操作。

在他们之间,这两个软件是Drupal推荐的管理部署方式。

请注意Drush(因此Aegir)有一些功能只能在Linux平台上运行,所以如果您的Drupal系统托管在Windows上,您可能会发现有些困难。

+0

即时只有一个开发人员,我认为agir其过度使用,不是吗?另外,你在这种情况下推荐我使用git?如果是的话,什么是最好的托管回购服务,如github和codebase? – amirash 2011-02-05 10:54:51

+0

@amirash - 嘿。如果只是你,Aegir可能会矫枉过正。 :)你应该一定要使用Drush - 让生活变得更容易。 – Spudley 2011-02-05 15:47:16

3

检查出闯入者和闯入者。 Drush非常适合同步内容,并确保检查备份迁移模块。还可以看一下可以帮助您在代码中捕获数据库模式的Features项目(另请参阅hook_update)。

另外:Drupal在几周内转向git。使用git。

Wheeeee!

5

以下是我们的工作方式: 我们有2个服务器1个生产环境,第二个环境适用于每个开发人员和一个“暂存”环境。代码存储在Git中,我们始终保持主分支和活分支。

简而言之:“活”数据库导出并分发给使用drush的开发人员。配置和设置使用这两个功能“保存”,并且hook_update()hook_install()。我们使用Feeds

解体后我们有一个非常简单的shell脚本,它利用drush将实时数据库从活动服务器复制到开发服务器上,并且开发人员使用相同的简单shell脚本将临时数据库他们自己的环境。

在数据库中发生的配置和开发通过Features和/或使用安装和更新挂钩导出。使用这三种方法,我们可以轻松部署99%的所有设置,内容类型和其他通常只存在于数据库中的结构。最后1%倾向于使用部署设置步骤更容易处理,而不是在hook_install和hook_update中编写查询。 100%的部署是可能的,但有时候这并不值得。

最后,有时需要从舞台到现场部署内容。这就是Feeds模块进来的地方。使用feed和一个简单的csv导入文件,我们已经成功创建并导出了大型分类集,甚至复杂的节点和节点集。当您需要一组标准“测试”数据来填充开发数据库时,使用提要也很有用。

当谈到时间来部署我们的主分支合并开发商变化新功能或设置,部署和升级,这通常需要运行update.php测试,然后“进口”来自新的变化或更新的功能。如果所有内容都通过测试和QA,则更改将合并到实时分支并部署到生产环境中。

我们学到的最大教训是:

  • 而其可能得到的一切为要素或更新并安装,它通常不值得。
  • 在开发中传递开发数据库最简单,然后在尘埃落定时导出,而不是试图导出每一个小变化。
  • 使用diff模块和特性一起节省了我们的屁股很多次。
0

一旦你设置了多个环境(dev/stage/prod),你可以使用git,subversion来保持和同步跨多个环境的代码。但之后,您将面临以下问题:如何在环境之间推拉内容。我知道这是一个非常古老的问题,因为它也是一个非常古老的问题。我们在公司dwwoft处理这个问题一年。请看看我们的工具。 www.drumine.com。基本上,我们可以为多个环境中的对象分配相同的ID。我们将于2015年12月10日在http://camp.drupalchile.org/解释它的工作原理。