我們從去年開始新做的Drupal網站基本上沒有再采用新建内容類型的方式了,不使用node頁面,而是采用在MySQL中自建table的方式,這樣在數據量大的情況下,對于速度的提升很明顯。
但涉及到老的網站已經用node建立了很多頁面,想要改為table的方式,就需要讀取node中的信息,轉移到table中去,可以采用php調用Drupal API,但效率不高,數據量大的情況下需要很長時間運行,後來嘗試用MySQL語句,也可以順利進行,現在來補充做個筆記,下面是Drupal 7網站遷移數據的MySQL語句示例:
INSERT INTO `zip_code`(`nid`) SELECT `nid` from `node` WHERE `type` = "zip_code"; UPDATE `zip_code` SET `zip_code`.`zipcodeplus4`=( select `node`.`title`from `node` where `node`.`nid` = `zip_code`.`nid`); UPDATE `zip_code` SET `zip_code`.`zipcode`=( select `field_data_field_zipcode`.`field_zipcode_value`from `field_data_field_zipcode` where `field_data_field_zipcode`.`entity_id` = `zip_code`.`nid`); UPDATE `zip_code` SET `zip_code`.`plus4`=( select `field_data_field_plus4`.`field_plus4_value`from `field_data_field_plus4` where `field_data_field_plus4`.`entity_id` = `zip_code`.`nid`); UPDATE `zip_code` SET `zip_code`.`range`=( select `field_data_field_range`.`field_range_value`from `field_data_field_range` where `field_data_field_range`.`entity_id` = `zip_code`.`nid`); UPDATE `zip_code` SET `zip_code`.`cityname`=( select `field_data_field_cityname`.`field_cityname_value`from `field_data_field_cityname` where `field_data_field_cityname`.`entity_id` = `zip_code`.`nid`);
可以用drush的sql-query來批量運行,速度很快。
自由标簽
评论1
10101
10101