Comment configurer l'exportation de nœud vers l'exportation de nœud de masse?

25

J'essaie Node Export pour l'exportation en masse de nœuds, mais il semble que je doive choisir chaque nœud à exporter individuellement.

Que faire si je souhaite exporter tous les nœuds d'un type de contenu sélectionné? Existe-t-il un moyen de le faire dans Node Export ou dois-je trouver un autre module?

Codium
la source

Réponses:

25

Vous pouvez le faire avec 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.

Par exemple,

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

affichera tous les nœuds d'article dans article.txt au format sérialisé. Vous pouvez ensuite utiliser drush pour les importer:

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

Par exemple:

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

*mis à jour

mpdonadio
la source
Merci, mais est-ce approprié pour une grande quantité de nœuds (> 1000)?
Codium
En théorie, oui, si vous donnez suffisamment de mémoire à PHP et définissez un temps d'exécution assez élevé. Je pense que la dernière fois que j'ai fait cela, j'avais des centaines de nœuds, peut-être près d'un millier.
mpdonadio
Merci encore. Voici plus d'informations drupal.org/node/1681584 . J'essaierai aussi l'export de données de vues
Codium
1
où le résultat a exporté le fichier stocké sur le disque dur lors de l'utilisation de la commande Drush?
Ahmad Zain
2
@AhmadZain La sortie est stockée où vous le spécifiez. La commande ci-dessus doit stocker le fichier au même endroit où vous avez exécuté la commande.
mpdonadio
5

Vous pouvez aller à la liste de tout le contenu dans les pages d'administration de Drupal (/ admin / content dans D7), puis filtrer par type de contenu, puis tout sélectionner, puis sélectionner «Exporter les nœuds» dans le menu déroulant

tog22
la source
2
Oui! C'est la réponse que je cherchais. C'est beaucoup plus facile que d'avoir à installer et à configurer Views Bulk Operations (VBO). Pour une solution aussi simple, c'était vraiment difficile à trouver.
Magmatic
1
Cela exporte uniquement la page actuelle du contenu de ce type, pas TOUS le contenu du type.
RichardAtHome
then select 'Node export' from the dropdown menuquel menu?
Ejaz
il peut répondre à cette dernière question. Je ne voyais pas non plus cela avant d'avoir désactivé la vue admin_views_node qui avait été activée pour ce site et effacé les caches. maintenant dans la liste déroulante Options de mise à jour sur admin / content, je vois une option pour «exporter le nœud». Sinon, si cette vue est activée, je peux la modifier, sélectionner le champ Opérations en bloc et ajouter l'opération «d'exportation de nœud».
petednz - fuzion
0

Vous pouvez utiliser le module d' exportation Node dans le but mentionné ci-dessus. Ça dit:

Il permet aux utilisateurs d'exporter des nœuds puis de l'importer dans une autre installation Drupal ou sur le même site. En utilisant ce module, vous pouvez gagner beaucoup de temps en configurant de nouveaux sites Web qui ont des nœuds similaires aux sites Web que vous avez déjà créés, en migrant des nœuds vers de nouvelles versions Drupal ou entre des sites de développement / de transfert / de production.

Astha chauhan
la source
0

Cela pourrait vous aider à diviser les résultats. 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
wit0ld
la source