5 votes

Limitation de la quantité de montages dans django dumpdata

Un de nos serveurs a 4 gb de données. Mais pour l'instant, je ne suis intéressé que par le remplissage de quelques données pour les montages. Une façon simple de décharger les données est :

 python manage.py dumpdata --indent=4 > shipping_fixture.json

mais le problème, c'est que ça déverse toutes les données dans la base de données. Travailler avec une telle quantité de données sur le test n'a aucun sens. Existe-t-il un moyen de limiter la quantité de données sans alourdir le travail, et les données que j'ai téléchargées sont complètes en elles-mêmes.

4voto

janos Points 22603

La dernière version de django (1.5.5) ne dispose pas d'une telle option, mais je pense qu'elle sera bientôt disponible dans une prochaine version. Il y a actuellement un ticket implémentant une nouvelle fonctionnalité à la commande dumpdata qui vous permettra de filtrer ce qui est sorti sur la base de la clé primaire si le modèle est spécifié.

Une application tierce appelée django-test-utils peut probablement faire ce dont vous avez besoin.

Utiliser Django dumpdata pour vider un sous-ensemble des données globales ?

1voto

fidelitas Points 973

Je recommande d'utiliser la sérialisation de Django [1]. Cela permet de vider une requête personnalisée dans un fichier de données.

Pour vider les données :

from django.core import serializers

with open("/tmp/file.json", "w") as f:
    serializers.serialize('json', query, stream=f)

Et pour charger les données :

with open("file.json", "r") as file:
    data = file.read()

for obj in serializers.deserialize("json", data):
    do_something_with_the_object(obj)

[1] https://docs.djangoproject.com/en/dev/topics/serialization/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X