以前升级Drupal网站都是按照规范的办法来:先备份、升级第三方模块、再升级核心、运行update、检查配置、复制需要的老文件等。今天用Drush来升级了本站(jamesqi.com)做实验,直接在服务器的本站目录中运行drush pm-update,然后按照屏幕提示回答几个yes就可以了,系统自动进行以下事项:
- 检查和显示需要更新的第三方模块和核心模块;
- 询问是否继续升级,回答yes后,升级第三方模块,保存备份文件到/root/drush-backups/目录中;
- 询问是否升级核心,回答yes后,升级核心,并保持备份文件到/root/drush-backups/目录中;
- 清理所有缓存,并运行update.php,进行数据库的更新,结束。
检查了升级后的网站,又进行了几项修改:
- boost cache模块升级后,多了cache status block在右侧,改为在左侧;
- boost cache缓存目录不可写,修改所有者或者权限来解决;
- 老版本common.inc曾经有一个小的修改,在新版本中也修改;
- 老版本bartik中添加过add.css,在新版本中也添加;
- 老版本mobile中添加过add.css,修改过html.tpl.php、node.tpl.php等,同样在新版本中添加、修改;
- xmlsitemap修改过其中文件,但这次升级不涉及到xmlsitemap的升级,所以不需要修改。
改进整个过程与手工升级的办法差不太多,只是这样的批处理执行起来简单一些,但那个备份工作把文件复制后文件日期都变了,还不如自己保持日期不变地进行复制,以便找出修改的文件。
补充:升级完成后别忘记了反复检查各种页面、各种情况,特别是以前修改过的地方,例如robots.txt、.htaccess、直接修改core和module中的程序等。
2013-3-7补充:如果是升级系列网站,第一个网站用drush pm-update (=pm-updatecode + updatedb),共用的code都升级了,后续网站只需要运行drush updatedb就可以。
自由标签
评论2
本站再次用Drush升级到7.21
步骤:
还比较顺利。
单独升级核心模块的办法
如果不想升级全部模块,也可以升级核心模块以及个别第三方模块。
单独升级核心模块的命令:drush up drupal (或drush pm-update drupal)
单独升级核心模块代码(不升级数据库)的命令:drush upc drupal (或drush pm-updatecode drupal)
单独升级某个第三方模块(以views为例)的命令:drush up views (或drush pm-update views)
单独升级某个第三方模块代码(以views为例)(不升级数据库)的命令:drush upc views (或drush pm-updatecode views)