我们从去年开始新做的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