嘿,我开始在drupal6中开发新的站点,我想知道在开发/阶段/生产环境中设置它的最好方法是什么……svn?在线付费服务(我看到了几个需要付费才能做的网站) bash脚本同步?请帮帮忙
发布于 2011-02-03 21:51:55
这可能是关于Drupal的迷雾问题之一--这是Drupal相当薄弱的一个领域。
您可能想了解一下Aegir。这是一个基于Drupal的平台,旨在简化部署和更新。
它在幕后使用Drush,所以如果宙斯盾看起来对你的需求来说是过度杀伤力,Drush可能就是你需要的。Drush是Drupal的命令行shell,它允许您使用命令提示符或批处理脚本在Drupal站点上执行操作。
这两个软件是Drupal推荐的管理部署的方式。
请注意,Drush (以及Aegir)有一些只有在Linux平台上运行时才能使用的特性,所以如果您的Drupal系统托管在Windows上,您可能会发现事情有点困难。
发布于 2011-02-04 03:16:15
我们是这样做的:我们有两台服务器,一台是生产环境,另一台是为每个开发人员提供的开发环境和一个“登台”环境。代码存储在Git中,我们始终保持一个主分支和活动分支在运行。
简而言之:“实时”数据库被导出并使用drush分发给开发人员。使用这两个功能以及hook_update()和hook_install()来“保存”配置和设置。我们使用Feeds
在部署之后,我们有一个非常简单的shell脚本,它利用drush将实时数据库从实时服务器复制到开发服务器上的staging,开发人员使用相同的简单shell脚本将staging数据库拉到他们自己的环境中。
数据库中发生的配置和开发是通过Features和/或使用安装和更新挂钩导出的。使用这三种方法,我们能够轻松部署通常只存在于数据库中的所有设置、内容类型和其他构造的99%。最后1%往往是通过部署设置步骤而不是用hook_install和hook_update编写查询更容易处理的事情。100%的部署是可能的,但有时并不值得为此付出努力。
最后,有时需要将内容从一个阶段部署到另一个阶段。这就是Feed模块的用武之地。使用feeds和一个简单的csv导入文件,我们已经成功地创建并导出了大型分类法集合,甚至复杂的节点和节点集合。当您需要一组标准的“测试”数据来填充您的开发数据库时,使用feeds也很有用。
当涉及到部署新功能或设置时,我们将开发人员的更改合并到主分支中,部署和测试登台,这通常需要运行update.php,然后从新的或更新的功能“导入”更改。如果所有内容都通过了测试和QA,那么更改就会合并到活动分支中,并部署到生产环境中。
我们学到的最大的教训是:
发布于 2011-02-03 20:55:03
查看drush和drush make。Drush是一个很好的同步工具,一定要查看备份迁移模块。还可以看看Feature项目,它可以帮助您在代码中捕获数据库模式(有关这一点,请参阅hook_update )。
另外: Drupal将在几周内迁移到git。使用git。
哇哦!
https://stackoverflow.com/questions/4883499
复制相似问题