Svn drupal开发/舞台/制作设置

Svn drupal开发/舞台/制作设置,svn,drupal,production-environment,Svn,Drupal,Production Environment,嘿,我开始在drupal6开发新站点,我想知道为开发/阶段/生产环境设置它的最佳方式是什么。。。svn?在线付费服务(我看到一些需要付费的网站)bash脚本同步? 请帮助查看drush和drush make。Drush非常适合同步东西,请务必查看备份迁移模块。还可以看看Features项目,它可以帮助您在代码中捕获数据库模式(请参见hook_update) 另外:Drupal将在几周后迁移到git。使用git 喂 这可能是mist提出的关于Drupal的问题之一——这是Drupal相当薄弱的一个

嘿,我开始在drupal6开发新站点,我想知道为开发/阶段/生产环境设置它的最佳方式是什么。。。svn?在线付费服务(我看到一些需要付费的网站)bash脚本同步?
请帮助查看drush和drush make。Drush非常适合同步东西,请务必查看备份迁移模块。还可以看看Features项目,它可以帮助您在代码中捕获数据库模式(请参见hook_update)

另外:Drupal将在几周后迁移到git。使用git


这可能是mist提出的关于Drupal的问题之一——这是Drupal相当薄弱的一个领域

你可能想调查一下。这是一个基于Drupal的平台,旨在简化部署和更新

它在幕后使用,因此,如果Aegir似乎对您的需求过于苛刻,那么Drush可能就是您所需要的。Drush是Drupal的命令行shell,它允许您使用命令提示符或批处理脚本在Drupal站点上执行操作

这两个软件是Drupal推荐的管理部署的方法

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

下面是我们的做法: 我们有两台服务器,一台是生产服务器,另一台是每个开发人员的开发环境,还有一个“暂存”环境。代码存储在Git中,我们始终保持主分支和活动分支的运行

简而言之,使用drush将“live”数据库导出并分发给开发人员。使用和这两种功能“保存”配置和设置。我们使用

解聚后,我们有一个非常简单的shell脚本,它利用drush将live数据库从live server复制到dev server上的staging,开发人员使用相同的简单shell脚本将staging db拉到他们自己的环境中

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

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

当需要部署新功能或设置时,我们会将开发人员的更改合并到主分支中,在登台时进行部署和测试,这通常需要运行update.php,然后从新的或更新的功能中“导入”更改。如果所有内容都通过了测试和QA,那么更改将合并到活动分支中,并部署到生产环境中

我们学到的最大教训是:

  • 虽然有可能将所有内容都融入到功能或更新和安装中,但这通常并不值得
  • 最简单的方法是在开发过程中传递一个dev数据库,然后在尘埃落定时导出,而不是尝试导出每一个微小的更改
  • 使用diff模块和其他功能,我们可以省去很多次麻烦

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

我只是一个开发人员,我认为这是过度的杀伤力,不是吗?另外,在这种情况下,您建议我使用git吗?如果是的话,像github和codebase这样最好的托管回购服务是什么?@amirash-Heh。如果只是你,Aegir可能有点过头了。:)不过,你绝对应该使用Drush,这会让生活更轻松。那么你的问题是什么?谢谢。我的评论是不完整的。我只想补充一下我的意见。关于如何设置dev/stage/prod环境的问题不仅仅是使用git或aegir解决的。在那之后,您将面临如何在这些环境之间同步内容的问题,我已经为此工作了一年。我只是想分享我的经验。前面的一个答案提到了功能的使用。在我看来,功能是好的,但不是一个完整的解决方案,因为它无法在环境之间保持唯一的id。我希望现在能说清楚。我想你应该在回答中加上你的评论