ฉันลองใช้ Node Export เพื่อการส่งออกจำนวนมาก แต่ดูเหมือนว่าฉันต้องเลือกทุกโหนดเพื่อส่งออกทีละรายการ
จะเกิดอะไรขึ้นถ้าฉันต้องการเอ็กซ์พอร์ตโหนดทั้งหมดของชนิดเนื้อหาที่เลือก? มีวิธีใดบ้างที่ฉันสามารถทำได้ใน Node Export หรือฉันควรหาโมดูลอื่น
ฉันลองใช้ Node Export เพื่อการส่งออกจำนวนมาก แต่ดูเหมือนว่าฉันต้องเลือกทุกโหนดเพื่อส่งออกทีละรายการ
จะเกิดอะไรขึ้นถ้าฉันต้องการเอ็กซ์พอร์ตโหนดทั้งหมดของชนิดเนื้อหาที่เลือก? มีวิธีใดบ้างที่ฉันสามารถทำได้ใน Node Export หรือฉันควรหาโมดูลอื่น
คำตอบ:
คุณสามารถทำได้ด้วย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
* อัพเดท
คุณสามารถไปที่รายการเนื้อหาทั้งหมดในหน้าผู้ดูแลระบบของ Drupal (/ admin / เนื้อหาใน D7) จากนั้นกรองตามประเภทเนื้อหาจากนั้นเลือกทั้งหมดแล้วเลือกทั้งหมดจากนั้นเลือก 'การส่งออกโหนด' จากเมนูแบบเลื่อนลง
then select 'Node export' from the dropdown menu
เมนูอะไร
คุณสามารถใช้โมดูลการส่งออกโหนดสำหรับวัตถุประสงค์ดังกล่าวข้างต้น มันบอกว่า:
อนุญาตให้ผู้ใช้ส่งออกโหนดและนำเข้าสู่การติดตั้ง Drupal อื่นหรือบนไซต์เดียวกัน การใช้โมดูลนี้คุณสามารถประหยัดเวลาได้มากในการตั้งค่าเว็บไซต์ใหม่ที่มีโหนดที่คล้ายกันกับเว็บไซต์ที่คุณสร้างไว้แล้วย้ายข้อมูลโหนดไปยังรุ่น Drupal ใหม่หรือระหว่างไซต์การพัฒนา / การจัดเตรียม / การผลิต
นี่อาจช่วยคุณในการแบ่งผลลัพธ์ สคริปต์ทุบตีง่าย ๆ :
#!/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