在生产中升级到Drupal

时间:2009-11-04 05:05:11

标签: php drupal deployment

对于正在投入使用的安装,有没有人有一个很好的Drupal升级策略?没有人在书中谈论这一点,很难在论坛和电子邮件列表中找到明确的答案。

例如:

  1. 锁定产品,不要让 更新数据 copy prod
  2. 将prod数据库复制到dev
  3. 关闭dev
  4. 中的所有模块
  5. 在dev中升级核心Drupal(必要时更新db)
  6. 在dev中升级模块(更新db if 必要)
  7. 开启模块
  8. 测试
  9. 将代码和数据库迁移到prod
  10. 将网站重新打开

2 个答案:

答案 0 :(得分:4)

您的策略听起来不错,但需要网站在“只读”模式下使用一段时间。这并不总是可行的。另外我不太清楚为什么要打开和关闭所有模块?

我可以提出一个稍微不同的方法

  1. 将prod数据库复制到dev
  2. 在dev
  3. 中复制prod代码
  4. 在dev中升级核心Drupal
  5. 运行update.php
  6. 测试
  7. 对于每个模块
  8. 。在dev
  9. 中升级模块
  10. 。运行update.php
  11. 。测试
  12. 进入维护模式
  13. 备份数据库
  14. 将代码迁移到生产
  15. 运行update.php
  16. 放回在线测试
  17. 这样可以进行更多测试,但停机时间更少,如果出现错误,您还可以确定哪个模块可以解决问题。它也不依赖于你将数据库从dev上传到实时。

答案 1 :(得分:3)

不要再认为在运行update.php之前需要关闭模块(主要版本之间可能除外)。我绝对不会每个模块运行一次update.php - 这对更新挂钩的工作方式没有意义。

如果您对命令行感到满意(并在Linux服务器上运行),那么请务必查看Drush。它可以简化流程并允许编写部分脚本。

此外,如果您正在寻找正式的更新过程来将您的开发服务器中的内容移动到大型站点的生产中,那么您还应该快速了解在安装和更新期间运行的挂钩。