2010-07-15 3 views
3

J'ai travaillé sur une application utilisant GAE dans Eclipse et j'ai un tas d'objets de données. Parfois, j'ai besoin de changer leur type, à savoir String ->Text afin qu'ils puissent stocker plus de données.GAE Modification des données dans votre magasin d'objets local

Quelle est la manière la plus rapide d'effectuer une mise à jour groupée sur le magasin de données/d'objets? Je sais que je pourrais probablement écrire du code Java pour itérer sur chaque objet, mais sûrement il y a un moyen plus facile?

Répondre

3

Normalement, il n'y a pas d'autre moyen que d'itérer le magasin et de modifier les données à la main. Le magasin de données n'est pas accessible autrement. Cependant, à partir de la version 1.3.3 du SDK, il est maintenant possible d'utiliser SQLite comme backend de la banque de données. Pour activer, définissez l'indicateur --use_sqlite = true

Vous devrez ensuite trouver le fichier SQLite et être en mesure d'utiliser n'importe quel client SQLite pour manipuler les données. MISE À JOUR: Comme l'a noté Nick Johnson, la prise en charge de SQLite est uniquement disponible pour le SDK Python et les données sont codées, ce qui rend la tâche de modification directe du contenu des tables plutôt difficile en fonction de la modification. Cela invalide cette réponse étant donné que l'affiche recherche une solution basée sur Java:/

+0

Ceci est faux. Le backend SQLite stocke toujours les données dans le format de tampon de protocole codé; alors qu'il serait théoriquement possible d'écrire quelque chose pour mettre à jour les données directement, cela serait inutilement complexe. En outre, le demandeur fait référence au Java SDK, tandis que le backend SQLite est spécifique au SDK Python. –

+0

J'avoue que ma réponse était un vœu pieux basé sur l'annonce que le SDK 1.3.3 supportait un backend SQLite. Nick est en fait parmi les meilleures personnes pour répondre à cette question. Je vais mettre à jour ma réponse et upvote son :) –

1

La meilleure option pour ceci est la nouvelle version appengine-mapreduce library, qui a des versions Java et Python. Cependant, dans le cas de la conversion de chaîne en texte, il n'est pas nécessaire de passer en revue et de mettre à jour les anciennes entités manuellement - elles seront corrigées lors de leur prochaine écriture par votre application, et fonctionneront toujours correctement dans la entre-temps.

+0

Cela n'a pas fonctionné pour moi, je mettais à jour des entités et obtenais des exceptions. – Jacob

+0

Nous avons besoin de plus de détails que cela pour vous aider. Quelles exceptions? Où? –

Questions connexes