Answers:
这是一个不平凡的问题,几乎每个人都有不同的答案:没有规范的Drupal方法来处理到生产推送的过渡。主持Drupal表演的人Dries Buytaert使其成为Drupal 8的主要举措之一。当然,Drupal 7刚刚发布,所以要花一些时间才能有成果。
该问题可以分为两个独立的问题:
前者主要由功能模块处理,功能模块将进行站点配置并将其转换为可添加到Drupal安装中的模块:这样,您可以将其添加到版本控制系统中,而不必担心在迁移内容时被吓倒了。
后者确实很棘手,因为在活动站点上,即使您已初步同步到开发环境,内容也可能会在生产中更改。这样可以防止在分阶段期间像配置配置那样大规模替换内容。
此外,Drupal不会对内容使用通用唯一标识符(UUID):每次添加节点或用户时,ID都会增加一个。因此,开发站点上的节点45可能是生产站点上的节点90。
不幸的是,我对此没有一个很好的解决方案:分期内容是Drupal的真正弱点。我个人所做的只是在生产站点上添加内容。如果客户希望在内容上线之前先看一下内容,那么我将建立一个生产站点的克隆,该站点仅供客户访问。然后,一旦获得批准,就可以直接对生产进行相同的更改。
还有另一种替代方法:部署模块。应该利用服务来使暂存内容相对轻松。但是我不能保证它的有效性,并且它没有Drupal 7版本。
在我们的过程中。
我们正在使用Hudson重建我们的dev / staging分支以同步实时分支和dev分支。
由于我们使用的是Git,我们正在执行的每个任务都有其自己的分支,因此当传递给QA时,我们会将其合并到master作为我们的回归测试的登台服务器。
当主服务器准备就绪时,我们将对其进行测试发布,以Release Server
进行实时复制(配置,硬件等)。
我们使用Feature
模块来部署配置。功能尚不支持某些功能,因此我们使用hook_update_N然后运行updatedb.php或drush -vd updb
drush fra --yes
)以还原所有覆盖的功能。由于我们正在使用Boost(移动到Varnish)和Memcache,因此我们需要清除cache(drush cc all
)。
我们正在使用rsync同步我们的图像/视频等...
要从XAMPP服务器迁移到另一台服务器,我遵循了该站点上的指示。
确保在生产服务器上与在开发服务器上保持相同的结构。我还必须在位于以下位置的drupal管理控制台中编辑一些文件:admin / config / media / file-system
确保公共文件系统路径和临时目录设置正确。