1

En tant que projet d'apprentissage, j'utilise django-nonrel avec le GAE pour concevoir un site avec autant de données que possible sur la NBA. En tant que tel, j'ai besoin de préremplir ma base de données (j'utilise le GAE-datastore) avec la plupart des données à l'aide d'un appareil, car entrer des informations pour plus de 400 joueurs à la main est tout simplement impensable. À cette fin, j'ai créé un appareil .yaml avec le format suivant (pris directement du django docs example):Django-nonrel: Seule une partie du chargement des données de montage en production

- model: players.player 
    pk: 1 
    fields: 
    team: 10 
    first_name: Jeff 
    last_name: Adrien 
    age: 25 
    pos: SF 
    gp: 8 

- model: players.player 
    pk: 2 
    fields: 
    team: 7 
    first_name: Arron 
    last_name: Afflalo 
    age: 26 
    pos: SG 
    gp: 32 

Malheureusement, quand je lance « python manage.py nbadata.yaml à distance loaddata », il ne charge autour des premiers 190 joueurs (je dis autour parce que la première fois chargé 190, la deuxième fois chargé 186) avant crapping et me donner le message d'erreur suivant:

File "/usr/local/google_appengine/lib/fancy_urllib/fancy_urllib/__init__.py", 
line 367, in do_open 
raise url_error 
URLError: <urlopen error [Errno 101] Network is unreachable> 

Est-ce que quelqu'un sait ce qui se passe, et s'il y a une solution?

MISE À JOUR: J'ai changé le nom de mon fichier .yaml en 'initial_data.yaml' pour voir si la charge automatique se porterait mieux pendant la partie syncdb du processus 'python manage.py deploy'. Je suis le résultat suivant:

Running syncdb. 
Creating tables ... 
Installing custom SQL ... 
Installing indexes ... 
Installed 448 object(s) from 1 fixture(s) 

Cependant, quand je regarde dans le magasin de données, il n'y a encore que 186 joueurs! Est-ce que quelqu'un sait ce qui se passe ??

Répondre

0

L'API distante effectue une requête HTTP pour télécharger chaque entité HTTP. À un moment donné, votre connexion réseau échoue et l'opération complète échoue.

Pensez à deux solutions, mais aucune n'est particulièrement facile: - Trouvez une meilleure connexion Internet. - Corrige le code de téléchargement du projecteur dans django-nonrel pour effectuer une nouvelle tentative automatique au lieu d'échouer.

Je ne suis pas certain, mais je ne pense pas que syncdb fonctionne vraiment en production, je crois que cela fonctionne juste contre la banque de données locale, c'est pourquoi vous voyez cela réussir.

Questions connexes