当前位置

Drupal网站node内容转到table中去

James Qi 在 2018年10月12日 - 16:41 提交

  我们从去年开始新做的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来批量运行,速度很快。

自由标签:

评论

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。