关于Drupal 8搬迁的一些笔记

Submitted by Dot on Sat, 05/21/2016 - 19:22

今天正式将网站从godaddy的旧主机搬到新主机,这里是一点笔记。

Drupal 8的数据库内容

Drupal 8安装初始化是63张表:

1 batch 17 comment__comment_body 33 node__field_tags 49 sessions
2 block_content 18 comment_entity_statistics 34 node_access 50 shortcut
3 block_content__body 19 comment_field_data 35 node_field_data 51 shortcut_field_data
4 block_content_field_data 20 config 36 node_field_revision 52 shortcut_set_users
5 block_content_field_revision 21 file_managed 37 node_revision 53 taxonomy_index
6 block_content_revision 22 file_usage 38 node_revision__body 54 taxonomy_term_data
7 block_content_revision__body 23 history 39 node_revision__comment 55 taxonomy_term_field_data
8 cache_bootstrap 24 key_value 40 node_revision__field_image 56 taxonomy_term_hierarchy
9 cache_config 25 key_value_expire 41 node_revision__field_tags 57 url_alias
10 cache_container 26 menu_link_content 42 queue 58 user__roles
11 cache_data 27 menu_link_content_data 43 router 59 user__user_picture
12 cache_default 28 menu_tree 44 search_dataset 60 users
13 cache_discovery 29 node 45 search_index 61 users_data
14 cache_entity 30 node__body 46 search_total 62 users_field_data
15 cachetags 31 node__comment 47 semaphore 63 watchdog
16 comment 32 node__field_image 48 sequences    

配置网站信息后新增两张表:cache_menu和cache_render。就是说,一个新安装的drupal 8共有65张表。

后期由于配置及模块,表会逐渐增多。比如我的网站在原来的基础上增加了11张表,有模块产生的,有新建content type产生的:

1 cache_dynamic_page_cache 7 node__comment_node_journal
2 cache_migrate 8 node__comment_node_page
3 cache_toolbar 9 node_revision__comment_node_article
4 flood 10 node_revision__comment_node_journal
5 honeypot_user 11 node_revision__comment_node_page
6 node__comment_node_article    

另外,从drupal 7升级至drupal 8时新增了118张migrate前缀的表,升级完成后可以删除,这里不赘述。

自己的drupal 8数据库使用一段时间后会涨到100多MB,实际数据只有20MB左右,其余全是缓存表。drupal 8默认内置了10张cache为前缀的表,需要定时清理,否则会变很大。搬迁时可以删除这10张表,刷新页面会自动重建。当然,官方推荐的做法是TRUNCATE (empty, not remove)。

搬迁时遇到的问题

  • 主页打开报如下错误:
    Parse error: syntax error, unexpected 'CLASS' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in /home/dotc/public_html/core/lib/Drupal/Core/Extension/ModuleInstaller.php on line 221
    定位到指定行,是注释。从来没有修改过文件,不太可能出问题。搜索了下,是和php相关的问题。想起之前修改过旧主机的php版本,因为默认是5.4,而drupal 8需要5.5以上。于是看了下新主机php版本,是5.4(native),改为5.5后主页访问正常。
  • 主页能访问,但访问任何clean url均是404,rewrite是启用的,服务器配置方面也肯定不存在问题,就想到.htaccess,ssh上去,果然网站目录下一个隐藏文件都没有,之前cp的时候漏掉了。复制过来,问题解决。

搬迁流程:

  1. TRUNCATE网站数据库里cache为前缀的10张表,备份数据库;
  2. ssh上旧主机,打包网站目录,直接rsync到新主机;
  3. 进入新主机cpanel,创建数据库,创建用户时生成一个很蛋疼的18位密码,不记录,直接复制到settings.php,然后连自己都不记得;
  4. 导入数据库。

批量删除用户及评论

网站有段时间开放了注册,很快就迎来近3000个机器人;而升级到drupal 8后,honeypot不像drupal 7中那么好用了,产生了大量垃圾评论。

趁这次大整,清理下垃圾用户和评论。drush应该能很轻松做到这些,可惜还不会。所以这里直接操作数据库。

drupal 8用户相关的表有3个:users、users_data和users_field_data,使用相同的uid,直接以uid操作即可:

308

 

评论就有点麻烦了:

308

 

Tags

Add new comment

Plain text

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.