Je suppose que votre piratage était quelque chose comme ça :
# Deleting all messages older than "earliest_date"
q = db.GqlQuery("SELECT * FROM Message WHERE create_date < :1", earliest_date)
results = q.fetch(1000)
while results:
db.delete(results)
results = q.fetch(1000, len(results))
Comme vous l'avez dit, s'il y a suffisamment de données, vous allez atteindre le délai d'attente de la requête avant qu'elle n'atteigne tous les enregistrements. Il faudrait relancer cette requête plusieurs fois de l'extérieur pour s'assurer que toutes les données ont été effacées ; c'est assez facile à faire, mais pas idéal.
La console d'administration ne semble pas offrir d'aide, car (d'après ma propre expérience avec elle), elle semble seulement permettre aux entités d'un type donné d'être listées et ensuite supprimées page par page.
Lors des tests, j'ai dû purger ma base de données au démarrage pour me débarrasser des données existantes.
J'en déduis que Google fonctionne selon le principe que le disque est bon marché, et que les données sont généralement rendues orphelines (les index de données redondantes sont remplacés), plutôt que supprimées. Étant donné qu'une quantité fixe de données est actuellement disponible pour chaque application (0,5 Go), cela n'aide pas beaucoup les utilisateurs qui ne font pas partie de Google App Engine.
0 votes
C'est une douleur dans le cou