如何在不删除drupal模块的情况下更新drupal模块?

时间:2015-04-20 07:06:05

标签: drupal drupal-7 drupal-modules

如何将新版本的模块上传到我的网站?如果我通过管理页面选择“安装新模块”,我会收到一条消息,表明该模块已经安装完毕。我找到了两个工作区,但是它们中没有一个看起来很理想,而且你应该这样做。

  1. 我可以先删除旧模块,然后上传并安装新版本。但是,如果模块中包含与之关联的数据,则此数据将丢失。

  2. 我可以替换服务器上的模块文件。这似乎不是那么干净的方式,如果有的话,我宁愿遵循更标准的流程。

  3. 那么最好的方法是什么?

    谢谢!

2 个答案:

答案 0 :(得分:3)

  1. 备份......以防万一。
  2. 将您的网站置于维护模式。
  3. 使用更新版本覆盖模块文件(首先删除旧模块文件)
  4. 运行/update.php(如果有任何和类似的东西,则进行数据库更改)。
  5. 将您的网站置于"正常"再次模式...检查一切是否正常。
  6. https://www.drupal.org/node/250790

答案 1 :(得分:0)

MilanG的答案在第3步中不正确。您没有覆盖,您需要删除现有的模块文件,然后将新的模块文件放在其中。这是因为新模块版本可能包含已删除的文件,有时如果这些文件未被删除,则会出现问题。

所以... 1.备份(drush site-archive) 2.将站点置于维护模式(drush vset maintenance_mode 0) 3.完全删除旧模块的目录(rm -fr path / to / modulename) 4.下载最新版本的模块(drush dl modulename) 5.运行update.php(drush -y updb) 6.关闭维护模式(drush vset maintenance_mode 1)

使用drush,只需编写一个包装脚本并按模块运行它就可以了,这样你就可以执行" drush update-module modulename"而那些其他步骤正在发生。