J'ai une application appengine avec deux types simples d'entités - ParentEntity
s et ChildEntity
s. Chaque ParentEntity
a un List
appartenant à ChildEntity
s.appengine bulkdownloader au xml avec des entités imbriquées
@PersistenceCapable
public class ParentEntity
{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent
private String name;
@Persistent(defaultFetchGroup=true)
private List<ChildEntity> children;
...
Avec ChildEntity défini de manière similaire.
Maintenant, je veux télécharger toutes mes données du magasin de données en utilisant la technique décrite au http://bulkloadersample.appspot.com/. Dans leur exemple, ils parviennent à exporter des données vers un fichier XML avec des entités possédées imbriquées dans des entités parentes. Mais quand j'essaie d'utiliser la configuration suivante (qui ressemble beaucoup à la leur - voir http://bulkloadersample.appspot.com/showfile/bulkloader_visitactivity.yaml et regardez la propriété activities
), je rencontre des erreurs.
- kind: ParentEntity
connector: simplexml
connector_options:
xpath_to_nodes: /Parents/ParentEntity
style: element_centric
property_map:
- property: __key__
external_name: key
export_transform: transform.key_id_or_name_as_string
- property: children
external_name: Children
import_transform:
transform.list_from_child_node('Children/ChildEntity')
export_transform:
transform.child_node_from_list('ChildEntity')
- kind: ChildEntity
connector: simplexml
connector_options:
xpath_to_nodes: /Children/ChildEntity
style: element_centric
property_map:
- property: __key__
external_name: key
export_transform: transform.key_id_or_name_as_string
je reçois l'erreur suivante:
google.appengine.ext.bulkload.bulkloader_errors.ErrorOnTransform: Error on trans
form. Property: children External Name: Children. Code: transform.ch
ild_node_from_list('ChildEntity') Details: 'NoneType' object is not iterable
Grosse mise à jour:
J'ai créé cette application exemple que vous pouvez réellement voir et à télécharger et tester
à http://rileylark.appspot.comVous pouvez voir la sortie I WANT au http://rileylark.appspot.com/view
Téléchargez le projet eclipse pour voir comment cela fonctionne.
Ce que je veux pour mes 500 points est un fichier de travail config.yaml qui peut exporter les données pour parent et ChildEntities en XML niché appcfg.py download_data
pourquoi sont vous utilisez transform.child_node_from_list ('GradingPeriod') et non transformer.list_from_child_node ('GradingPeriod') comme utilisé dans l'exemple lié? – systempuntoout
Je le fais sur une idée que c'est ce que ça devrait être. Je n'ai vu aucun document faisant autorité nulle part, d'autres sites utilisent child_node_from_list, et il semble que je veuille faire un nœud enfant à partir d'une liste. J'ai aussi essayé list_from_child_node, mais je reçois beaucoup d'autres erreurs. –
La "liste" à partir de laquelle chercher les 'children' semble toujours être' None'. – hleinone