Как настроить экспорт узлов в экспорт массовых узлов?


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

* обновлен


Спасибо, но подходит ли это для большого количества узлов (> 1000)?
Codium

Теоретически, да, если вы предоставите PHP достаточно памяти и установите довольно высокое время выполнения. Я думаю, что в прошлый раз, когда я сделал это, у меня были сотни узлов, может быть, около тысячи.
mpdonadio

Еще раз спасибо. Вот больше информации drupal.org/node/1681584 . Я попробую Экспорт данных Представлений также
Codium

1
где результирующий экспортированный файл хранится на жестком диске при использовании команды Drush?
Ахмад Заин

2
@AhmadZain Выход хранится там, где вы его указываете. Приведенная выше команда должна сохранить файл в том же месте, откуда вы ее выполнили.
mpdonadio

5

Вы можете перейти к списку всего контента на страницах администрирования Drupal (/ admin / content в D7), затем отфильтровать по типу контента, затем выбрать все, затем выбрать «Экспорт узла» из выпадающего меню


2
Да! Это ответ, который я искал. Это намного проще, чем устанавливать и настраивать Views Bulk Operations (VBO). Для такого простого решения было действительно трудно найти.
Magmatic

1
Это только экспортирует текущую страницу содержимого этого типа, но не ВСЕ содержимое типа.
RichardAtHome

then select 'Node export' from the dropdown menuкакое меню?
Ejaz

это может ответить на этот последний вопрос. Я также не видел этого, пока не отключил представление admin_views_node, которое было включено для этого сайта, и не очистил кеш. теперь в раскрывающемся списке «Параметры обновления» в разделе «admin / content» я вижу опцию «экспорт узла». В качестве альтернативы, если у меня включено это представление, я могу отредактировать его, выбрать поле «Массовые операции» и добавить операцию «Экспорт узла».
petednz - fuzion

0

Вы можете использовать модуль экспорта Node для вышеуказанной цели. Это говорит:

Это позволяет пользователям экспортировать узлы, а затем импортировать их в другую установку 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.