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退出中國大陸搜索,以及國家防火牆越來越嚴厲有比較大的關系,網速慢了浏覽者也少了,訪問量下降自然廣告收入也下降。