Jak skonfigurować eksport węzła do eksportu węzła masowego?

25

Próbuję eksportu węzłów do eksportu węzłów masowych, ale wydaje się, że muszę wybrać każdy węzeł, aby eksportować osobno.

Co jeśli chcę wyeksportować wszystkie węzły wybranego typu treści? Czy jest jakiś sposób, aby to zrobić w Node Export, czy powinienem znaleźć inny moduł?

Codium
źródło

Odpowiedzi:

25

Możesz to zrobić za pomocą 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.

Na przykład,

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

wypisze wszystkie węzły artykułu do article.txt w formacie serializowanym. Następnie możesz użyć drush, aby je zaimportować:

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

Na przykład:

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

* zaktualizowane

mpdonadio
źródło
Dzięki, ale czy jest to odpowiednie dla dużej liczby węzłów (> 1000)?
Codium
Teoretycznie tak, jeśli dasz PHP wystarczającą ilość pamięci i ustawisz dość długi czas wykonania. Myślę, że ostatnim razem, gdy to zrobiłem, miałem setki węzłów, może blisko tysiąc.
mpdonadio
Dzięki jeszcze raz. Oto więcej informacji drupal.org/node/1681584 . Spróbuję też Eksportować dane wyświetlenia
Codium
1
gdzie wynik wyeksportowany plik przechowywany na twardym dysku podczas korzystania z polecenia Drush?
Ahmad Zain
2
@AhmadZain Dane wyjściowe są przechowywane w dowolnym miejscu. Powyższe polecenie powinno przechowywać plik w tym samym miejscu, z którego uruchomiono polecenie.
mpdonadio
5

Możesz przejść do listy całej zawartości na stronach administracyjnych Drupala (/ admin / content w D7), następnie filtrować według typu zawartości, następnie wybierać wszystkie, a następnie z menu rozwijanego wybrać „Eksport węzłów”

tog22
źródło
2
Tak! Oto odpowiedź, której szukałem. Jest to o wiele łatwiejsze niż instalacja i konfiguracja Views Bulk Operations (VBO). Trudno było znaleźć takie proste rozwiązanie.
Magmatic,
1
To tylko eksportuje bieżącą stronę treści tego typu, a nie WSZYSTKIE treści typu.
RichardAtHome
then select 'Node export' from the dropdown menujakie menu
Ejaz
może odpowiedzieć na to ostatnie pytanie. Nie widziałem tego, dopóki nie wyłączyłem widoku admin_views_node, który został włączony dla tej witryny i nie wyczyściłem pamięci podręcznej. teraz w rozwijanym menu Opcje aktualizacji na stronie admin / content widzę opcję „eksportu węzła”. Alternatywnie, jeśli mam włączony ten widok, mogę go edytować, wybrać pole Operacje zbiorcze i dodać operację eksportu węzła.
petednz - fuzion
0

Możesz użyć modułu eksportu Node do wyżej wymienionych celów. To mówi:

Pozwala użytkownikom eksportować węzły, a następnie importować je do innej instalacji Drupal lub w tej samej witrynie. Za pomocą tego modułu możesz zaoszczędzić dużo czasu na konfigurowaniu nowych stron internetowych, które mają podobne węzły do ​​stron, które już utworzyłeś, migrowaniu węzłów do nowych wersji Drupal lub między stronami programistycznymi / testowymi / produkcyjnymi.

Astha Chauhan
źródło
0

Może to pomóc w podzieleniu wyników. Prosty skrypt 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
wit0ld
źródło