2010年底、2011年初开始尝试Drupal,当时Drupal 7还没有正式版,就用的Drupal 6,到2012年初尝试把网站升级到Drupal 7,升级过程见《本网站从Drupal_6.20升级到6.24,再升级到7.12》,但后来在升级大数据量网站的时候遇到问题,当时也记录了博文《大数据量Drupal_6网站升级到Drupal_7很麻烦》。今年以来我们陆续都在做Drupal 6网站的升级,现在Drupal 8都推出了,更是要加快升级工作,目前都是剩下一些数据量特别大的站点还在进行中,现在也没有采用曾经的mysql指令的方式来迁移数据,而是设法添加硬件、修改配置设置来让drush migrate-content-fields运行得不中断来进行数据迁移。
All commands in content_migrate: (content_migrate) content-migrate-field-data Migrate a single field data. content-migrate-field-structure Migrate a single field structure. content-migrate-fields Migrate some or all fields. content-migrate-rollback Rollback migration of some or all fields. content-migrate-status Show field migration status.
数据迁移运行结束后需要对迁移后的数据和迁移前的数据进行对比,数量一致的情况下才是正常的,如果明显数量少了就是中途运行中断了,需要重新进行。这个数据表的对比我编写了mysql语句来进行,可以放在sh脚本中来批量检查:
# 检查Drupal 6中多个内容类型共享的字段表 TABLE=(cityname county countyfips zipcode) for i in "${TABLE[@]}";do echo == content_field_$i == $d sql-query "select count(*) amount from content_field_$i;" # echo field_data_field_$i $d sql-query "select count(*) amount from field_data_field_$i ;" # echo field_revision_field_$i $d sql-query "select count(*) amount from field_revision_field_$i ;" done # 检查Drupal 6中某个内容类型中单独使用的字段表 TABLE=(plus4 range recordtype carrierrouteid predirect streetname suffix postdirect addressprimlownum addressprimhighnum addressprimoddeven bldgfirmname addresssecabbr addressseclownum addresssechighnum addresssecoddeven zipaddonlowsector zipaddonlowsegment zipaddonhighsector zipaddonhighsegment basealternate lacsstatus govbldgindicator financenumber stateabbr congressionaldistrictnum muncitystate urbcitystate preferredlastlinekey) for i in "${TABLE[@]}";do echo == field_${i}_value IS NOT NULL == $d sql-query "select count(*) amount from content_type_zip_code where field_${i}_value IS NOT NULL;" # echo field_data_field_$i $d sql-query "select count(*) amount from field_data_field_$i ;" # echo field_revision_field_$i $d sql-query "select count(*) amount from field_revision_field_$i ;" done
输出查看结果,统计数量一致就是对的,不一致就需要检查或者重新来运行数据迁移。
另外,大数据量网站的数据迁移可能会多次失败,用drush content-migrate-rollback退回会在数据库中留下一些field_deleted_data_38、field_deleted_revision_38这样名称的表,可以用sql语句SHOW TABLES LIKE '%deleted%';批量找出来,然后删除腾出数据库空间。
评论2
现在一个月能有多少广告收入啊
现在一个月能有多少广告收入啊不同的网站收入很不一样啊
每个网站都有自己的特点,根据流量、质量、内容领域、针对不同地域和不同语言的访问者等各种因素,都区别很大。我们这边的站点这几年AdSense收入下降很明显,这与Google退出中国大陆搜索,以及国家防火墙越来越严厉有比较大的关系,网速慢了浏览者也少了,访问量下降自然广告收入也下降。