Come configurare l'esportazione del nodo per l'esportazione del nodo di massa?


25

Sto provando Node Export per l'esportazione di nodi di massa, ma sembra che debba scegliere ogni nodo da esportare singolarmente.

Cosa succede se desidero esportare tutti i nodi di un tipo di contenuto selezionato? C'è un modo per farlo in Node Export o dovrei trovare un altro modulo?

Risposte:


25

Puoi farlo 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.

Per esempio,

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

genererà tutti i nodi dell'articolo su article.txt in formato serializzato. È quindi possibile utilizzare Drush per importarli:

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

Per esempio:

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

* aggiornato


Grazie, ma è adatto per una grande quantità di nodi (> 1000)?
Codium,

In teoria, sì, se dai a PHP sufficiente memoria e imposti un tempo di esecuzione piuttosto elevato. Penso che l'ultima volta che ho fatto questo ho avuto centinaia di nodi, forse vicino a mille.
mpdonadio

Grazie ancora. Ecco maggiori informazioni drupal.org/node/1681584 . Proverò anche a esportare Data Views
Codium il

1
dove il risultato ha esportato il file archiviato sul disco rigido quando si utilizza il comando Drush?
Ahmad Zain,

2
@AhmadZain L'output viene archiviato ovunque tu lo specifichi da fare. Il comando sopra dovrebbe archiviare il file nello stesso posto da cui è stato eseguito il comando.
mpdonadio

5

Potresti andare all'elenco di tutto il contenuto nelle pagine di amministrazione di Drupal (/ admin / contenuto in D7), quindi filtrare per tipo di contenuto, quindi selezionare tutto, quindi selezionare 'Esportazione nodo' dal menu a discesa


2
Sì! Questa è la risposta che stavo cercando. Questo è molto più semplice che dover installare e configurare Views Bulk Operations (VBO). Per una soluzione così semplice, è stato davvero difficile da trovare.
Magmatic

1
Ciò esporta solo la pagina corrente di contenuto di quel tipo, non TUTTO il contenuto di tipo.
RichardAtHome

then select 'Node export' from the dropdown menuquale menu?
Ejaz,

potrebbe rispondere a quest'ultima domanda. Inoltre non ho visto questo fino a quando ho disabilitato la vista admin_views_node che era stata attivata per quel sito e ho cancellato le cache. ora nel menu a discesa Opzioni di aggiornamento su admin / contenuto, vedo un'opzione per 'esportazione nodo'. In alternativa, se ho abilitato quella vista, posso modificarla, selezionare il campo Operazioni collettive e aggiungere l'operazione 'esportazione nodo'.
petednz

0

È possibile utilizzare il modulo di esportazione Nodo per lo scopo sopra indicato. Dice:

Consente agli utenti di esportare nodi e quindi importarlo in un'altra installazione di Drupal o sullo stesso sito. Utilizzando questo modulo puoi risparmiare molto tempo nella configurazione di nuovi siti Web che hanno nodi simili ai siti Web che hai già creato, migrando i nodi in nuove versioni di Drupal o tra siti di sviluppo / gestione temporanea / produzione.


0

Questo potrebbe aiutarti a dividere i risultati. Script bash semplice:

#!/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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.