วิธีกำหนดค่า Node Export เป็น mass node export?


25

ฉันลองใช้ Node Export เพื่อการส่งออกจำนวนมาก แต่ดูเหมือนว่าฉันต้องเลือกทุกโหนดเพื่อส่งออกทีละรายการ

จะเกิดอะไรขึ้นถ้าฉันต้องการเอ็กซ์พอร์ตโหนดทั้งหมดของชนิดเนื้อหาที่เลือก? มีวิธีใดบ้างที่ฉันสามารถทำได้ใน Node Export หรือฉันควรหาโมดูลอื่น

คำตอบ:


25

คุณสามารถทำได้ด้วยdrush :

$ drush help ne-export
Export nodes using Node export.

Arguments:
  nids : A list of space-separated node IDs to export.

Options:
  --file : The filename of the output file.  If supplied, the node code will be
exported to that file, otherwise it will export to stdout.
  --format : If supplied, node code will be output using a particular export
format, if available. (e.g. serialize)
  --status : Filter for 'status'; A boolean value (0 or 1) indicating whether
the node is published (visible to non-administrators).
  --promote : Filter for 'promote'; A boolean value (0 or 1) indicating whether
the node should be displayed on the front page.
  --sticky : Filter for 'sticky'; A boolean value (0 or 1) indicating whether
the node should be displayed at the top of lists in which it appears.
  --translate : Filter for 'translate'; A boolean value (0 or 1) indicating
whether the node translation needs to be updated.
  --language : Filter for 'language'; The language code (e.g. de or en-US) of
this node.
  --type : Filter for 'type'; The machine-readable name (e.g. story or page) of
the type of this node.
  --sql : Filter by SQL (EXPERIMENTAL); An SQL query string that returns nids
(e.g. "SELECT nid FROM nodes WHERE nid < 10").
  --code : Filter by PHP code (EXPERIMENTAL); PHP code that prints or returns,
an array or CSV string of nids (e.g. "custom_get_my_nids();"). Don't include PHP
tags.

ตัวอย่างเช่น,

drush ne-export --type=article --file=article.txt

จะเอาท์พุทโหนดบทความทั้งหมดไปที่ article.txt ในรูปแบบต่อเนื่อง จากนั้นคุณสามารถใช้ drush เพื่อนำเข้าสิ่งเหล่านี้:

$ drush help ne-import
Import nodes previously exported with Node export.

Arguments:

Options:
  --uid : User ID of user to save nodes as. If not given will use the user with
an ID of 1. You may specify 0 for the Anonymous user.
  --file : The filename of the input file.  If supplied, the node code will be
imported from that file, otherwise it will import to stdin.

ตัวอย่างเช่น:

drush ne-import --uid=1 --file=article.txt

* อัพเดท


ขอบคุณ แต่สิ่งนี้เหมาะสำหรับโหนดจำนวนมาก (> 1,000) หรือไม่
Codium

ในทางทฤษฎีแล้วใช่ถ้าคุณให้ PHP มีหน่วยความจำเพียงพอและตั้งเวลาในการประมวลผลที่ค่อนข้างสูง ฉันคิดว่าครั้งสุดท้ายที่ฉันทำสิ่งนี้ฉันมีหลายร้อยโหนดอาจจะใกล้เคียงกับพัน
mpdonadio

ขอบคุณอีกครั้ง. นี่คือข้อมูลเพิ่มเติมdrupal.org/node/1681584 ฉันจะลองส่งออกข้อมูล Views ด้วยเช่นกัน
Codium

1
ไฟล์ผลลัพธ์ที่ส่งออกเก็บไว้ในฮาร์ดดิสก์เมื่อใช้คำสั่ง Drush
Ahmad Zain

2
@AhmadZain เอาต์พุตจะถูกจัดเก็บทุกที่ที่คุณระบุให้ทำ คำสั่งดังกล่าวควรจัดเก็บไฟล์ในที่เดียวกับที่คุณเรียกใช้คำสั่งจาก
mpdonadio

5

คุณสามารถไปที่รายการเนื้อหาทั้งหมดในหน้าผู้ดูแลระบบของ Drupal (/ admin / เนื้อหาใน D7) จากนั้นกรองตามประเภทเนื้อหาจากนั้นเลือกทั้งหมดแล้วเลือกทั้งหมดจากนั้นเลือก 'การส่งออกโหนด' จากเมนูแบบเลื่อนลง


2
ใช่ นี่คือคำตอบที่ฉันได้รับการมองหา สิ่งนี้ง่ายกว่าการติดตั้งและกำหนดค่า Views Bulk Operations (VBO) สำหรับวิธีแก้ปัญหาอย่างง่ายมันหายากจริงๆ
Magmatic

1
นั่นจะส่งออกหน้าปัจจุบันของเนื้อหาประเภทนั้นเท่านั้นไม่ใช่เนื้อหาประเภททั้งหมด
RichardAtHome

then select 'Node export' from the dropdown menuเมนูอะไร
Ejaz

อาจตอบคำถามสุดท้าย ฉันยังไม่เห็นสิ่งนี้จนกว่าฉันจะปิดใช้งานมุมมอง admin_views_node ซึ่งเปิดใช้งานสำหรับไซต์นั้นและล้างแคช ตอนนี้ในตัวเลือกการอัปเดตแบบเลื่อนลงที่ผู้ดูแลระบบ / เนื้อหาฉันเห็นตัวเลือกเพื่อ 'ส่งออกโหนด' อีกทางเลือกหนึ่งถ้าฉันเปิดใช้งานมุมมองนั้นฉันสามารถแก้ไขได้เลือกฟิลด์การดำเนินการเป็นกลุ่มและเพิ่มการดำเนินการ 'ส่งออกโหนด'
petednz - fuzion

0

คุณสามารถใช้โมดูลการส่งออกโหนดสำหรับวัตถุประสงค์ดังกล่าวข้างต้น มันบอกว่า:

อนุญาตให้ผู้ใช้ส่งออกโหนดและนำเข้าสู่การติดตั้ง Drupal อื่นหรือบนไซต์เดียวกัน การใช้โมดูลนี้คุณสามารถประหยัดเวลาได้มากในการตั้งค่าเว็บไซต์ใหม่ที่มีโหนดที่คล้ายกันกับเว็บไซต์ที่คุณสร้างไว้แล้วย้ายข้อมูลโหนดไปยังรุ่น Drupal ใหม่หรือระหว่างไซต์การพัฒนา / การจัดเตรียม / การผลิต


0

นี่อาจช่วยคุณในการแบ่งผลลัพธ์ สคริปต์ทุบตีง่าย ๆ :

#!/bin/bash
# Run this script in Drupal root app directory!
# Requirements: drush command tool installed with ne-export command (you need Node Export module installed in Drupal)

maxRows=100
startFrom=0
for i in {0..17}
do
  startFrom=$(( (i)*100 ))
  echo "SELECT nid FROM node where node.type='noticia' limit $startFrom,$maxRows" # just for debugging
  drush ne-export  --file="nodes-exported/nodes-exported-$i.json" --format='json' --sql="SELECT nid FROM node where node.type='noticia' limit $startFrom,$maxRows" # of course set your own SQL here
done

exit 0
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.