대량 노드로 노드 내보내기를 구성하는 방법은 무엇입니까?


25

대량 노드 내보내기를 위해 노드 내보내기를 시도하고 있지만 개별적으로 내보내려면 모든 노드를 선택해야합니다.

선택한 컨텐츠 유형의 모든 노드를 내보내려면 어떻게합니까? 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

모든 기사 노드를 serialized 형식으로 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

* 업데이트


고맙지 만 대량의 노드 (> 1000)에 적합합니까?
Codium

이론적으로 그렇습니다. PHP에 충분한 메모리를 제공하고 실행 시간을 꽤 길게 설정하면 가능합니다. 나는 이것을 마지막으로 할 때 수백 개의 노드를 가지고 있다고 생각합니다.
mpdonadio

다시 감사합니다. 자세한 정보는 drupal.org/node/1681584 입니다. 나는 Views Data Export도 시도 할 것이다
Codium

1
Drush 명령을 사용할 때 결과가 하드 디스크에 저장된 파일을 내 보낸 위치는 무엇입니까?
Ahmad Zain

2
@AhmadZain 출력은 지정한 곳마다 저장됩니다. 위의 명령은 파일을 명령을 실행 한 곳과 같은 곳에 저장해야합니다.
mpdonadio

5

Drupal의 관리 페이지 (D7의 / admin / content)에있는 모든 컨텐츠 목록으로 이동 한 다음 컨텐츠 유형별로 필터링 한 다음 모두를 선택한 다음 드롭 다운 메뉴에서 '노드 내보내기'를 선택할 수 있습니다


2
예! 이것이 내가 찾은 대답입니다. VBO (View Bulk Operations)를 설치하고 구성하는 것보다 훨씬 쉽습니다. 이러한 간단한 솔루션의 경우 찾기가 매우 어려웠습니다.
Magmatic

1
모든 유형의 내용이 아니라 해당 유형의 현재 내용 페이지 만 내 보냅니다.
RichardAtHome

then select 'Node export' from the dropdown menu어떤 메뉴?
Ejaz

마지막 질문에 답할 수 있습니다. 또한 해당 사이트에 대해 설정된 admin_views_node View를 비활성화하고 캐시를 지울 때까지 이것을 보지 못했습니다. 이제 관리자 / 콘텐츠의 업데이트 옵션 드롭 다운에 '노드 내보내기'옵션이 표시됩니다. 또는 해당보기를 활성화 한 경우 편집하고 대량 작업 필드를 선택하고 '노드 내보내기'작업을 추가 할 수 있습니다.
petednz-fuzion 2016 년

0

위에서 언급 한 목적으로 노드 내보내기 모듈을 사용할 수 있습니다 . 그것은 말한다 :

사용자가 노드를 내 보낸 다음 다른 Drupal 설치 또는 동일한 사이트로 가져올 수 있습니다. 이 모듈을 사용하면 이미 만든 웹 사이트와 유사한 노드가있는 새 웹 사이트를 설정하거나 노드를 새 Drupal 버전으로 마이그레이션하거나 개발 / 스테이지 / 생산 사이트간에 마이그레이션하는 데 많은 시간을 절약 할 수 있습니다.


0

결과를 나누는 데 도움이 될 수 있습니다. 간단한 bash 스크립트 :

#!/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.