¿Cómo configurar Node Export para la exportación de nodo masivo?


25

Estoy probando Node Export para la exportación masiva de nodos, pero parece que tengo que elegir cada nodo para exportar individualmente.

¿Qué sucede si deseo exportar todos los nodos de un tipo de contenido seleccionado? ¿Hay alguna manera de hacer esto en Node Export, o debería encontrar otro módulo?

Respuestas:


25

Puedes hacerlo con 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.

Por ejemplo,

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

enviará todos los nodos del artículo a article.txt en formato serializado. Luego puede usar drush para importarlos:

$ 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.

Por ejemplo:

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

*actualizado


Gracias, pero ¿es adecuado para una gran cantidad de nodos (> 1000)?
Codium

En teoría, sí, si le da a PHP suficiente memoria y establece un tiempo de ejecución bastante alto. Creo que la última vez que hice esto tuve cientos de nodos, tal vez cerca de mil.
mpdonadio

Gracias de nuevo. Aquí hay más información drupal.org/node/1681584 . Intentaré también Exportar datos de vistas
Codium

1
donde el resultado exportó el archivo almacenado en el disco duro cuando se utiliza el comando Drush?
Ahmad Zain

2
@AhmadZain La salida se almacena donde se especifica que se haga. El comando anterior debe almacenar el archivo en el mismo lugar desde el que ejecutó el comando.
mpdonadio

5

Puede ir a la lista de todo el contenido en las páginas de administración de Drupal (/ admin / content en D7), luego filtrar por tipo de contenido, luego seleccionar todo, luego seleccionar 'Exportar nodo' en el menú desplegable


2
¡Sí! Esta es la respuesta que he estado buscando. Esto es mucho más fácil que tener que instalar y configurar Views Bulk Operations (VBO). Para una solución tan simple, fue realmente difícil de encontrar.
Magmatic

1
Eso solo exporta la página actual de contenido de ese tipo, no TODO el contenido del tipo.
RichardAtHome

then select 'Node export' from the dropdown menuque menu
Ejaz

puede responder esa última pregunta. Tampoco vi esto hasta que desactivé la vista admin_views_node que se había activado para ese sitio y borré los cachés. ahora en el menú desplegable Opciones de actualización en admin / content, veo una opción para 'exportar nodos'. Alternativamente, si tengo esa Vista habilitada, puedo editarla, seleccionar el campo Operaciones masivas y agregar la operación 'exportación de nodo'.
petednz

0

Puede usar el módulo de exportación de Nodo para el propósito mencionado anteriormente. Dice:

Permite a los usuarios exportar nodos y luego importarlos a otra instalación de Drupal, o en el mismo sitio. Con este módulo puede ahorrarse mucho tiempo configurando nuevos sitios web que tengan nodos similares a los sitios web que ya ha creado, migrando nodos a nuevas versiones de Drupal, o entre sitios de desarrollo / puesta en escena / producción.


0

Esto podría ayudarlo a dividir los resultados. Script bash simple:

#!/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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.