【问题标题】:Upgrades to Drupal in production在生产中升级到 Drupal
【发布时间】:2009-11-04 05:05:10
【问题描述】:

是否有人对生产中的安装有好的 Drupal 升级策略?没有人在书中谈论这个问题,而且在论坛和电子邮件列表中很难找到明确的答案。

例如:

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

【问题讨论】:

  • 你是在说重大升级,fx 从 5 到 6
  • 嗯,好问题。我正在尝试找出最佳的整体策略。重大升级需要稍微不同的步骤吗?
  • 当然。 French 先生的回答仅适用于原版次要->次要升级,其中 dev 中没有更多需要移动到 prod 的 add'l 更改。
  • French 先生的回答中的第 2 步能否包含更重大的升级?
  • 其实我认为与开发中的自定义代码合并不应该是这个过程的一部分。您真正想要做的是将产品代码复制到环境并升级该副本...

标签: php drupal deployment


【解决方案1】:

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

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

  1. 将 prod 数据库复制到 dev
  2. 在 dev 中复制 prod 代码
  3. 在开发中升级核心 Drupal
  4. 运行update.php
  5. 测试
  6. 对于每个模块
  7. 。在 dev 中升级模块
  8. 。运行 update.php
  9. 。测试
  10. 进入维护模式
  11. 备份数据库
  12. 将代码迁移到生产环境
  13. 运行 update.php
  14. 重新上线测试

这种方式有更多的测试但更少的停机时间,如果出现错误,您也可以找出哪个模块破坏了事情。它也不依赖于您将数据库从 dev 上传到 live。

【讨论】:

  • 完成,还添加了“备份数据库”
  • 我认为我们也应该将'run update.php'放在开发环境中......步骤2.5
  • 好主意,我已经改了,还把这篇文章做成了wiki。
  • 有了你的列表,你基本上说在某个时候你可以通过运行 update.php 来升级你的所有内容。但是,可能有一点 13.5 您需要更改后端的设置。据我所知,没有办法事先进行此类设置更改,因为设置和内容混合在一个数据库中。
【解决方案2】:

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

如果您对命令行(并且在 Linux 服务器上运行)完全满意,那么一定要看看 Drush。它可以简化流程并允许编写部分脚本。

此外,如果您正在寻找一个正式的更新流程来将内容从您的开发服务器转移到大型网站的生产环境,那么您还应该了解在安装和更新期间运行的挂钩。

【讨论】:

  • 同意 - 我已经定期升级了许多 Drupal 站点,没有关闭模块,也没有为每个单独的站点运行 update.php。
猜你喜欢
  • 2017-04-09
  • 1970-01-01
  • 1970-01-01
  • 2017-04-02
  • 2011-06-22
  • 2015-11-25
  • 1970-01-01
  • 1970-01-01
  • 2018-11-01
相关资源
最近更新 更多