django, plusieurs bases de données, problème de configuration: « Erreur d'importation routeur de base de données »
-
01-10-2019 - |
Question
J'ai suivi ces instructions pour ensemble jusqu'à Django avec plusieurs bases de données. Il travaille comme prévu dans mon environnement de développement local (win7), cependant, quand je télécharge le projet à mon serveur en direct (de webfaction), je reçois
ImproperlyConfigured: Erreur base de données importation routeur MyCustomRouter: "Aucun module nommé path.to.my.router"
À partir du shell Django, je peux importer MyCustomRouter:
>>> from path.to.my.router import MyCustomRouter
>>>
Je suis en cours d'exécution django 1.2.1 et python2.6 tant au niveau local et sur le serveur live ...
Les conseils ce qui pourrait être la cause de ce comportement ou comment debug sont grandement appréciés!
Cheers,
Martin
La solution
J'ai eu le même problème. J'avais défini un routeur models.py. Déplacement de la définition de la classe dans son propre fichier (j'ai appelé router.py mine) et settings.py de mise à jour en conséquence, de résoudre l'erreur.
Autres conseils
path.to.myrouter
est juste un espace réservé.
Il suffit d'ajouter ce qui suit à votre fichier setting.py
DATABASE_ROUTERS = ['myapp.routers.MyApp2Router',]
renommer votre fichier routeur routers.py
Exemple:
Mes projets se compose de plusieurs applications comme « masse salariale », « fiscalité », « help desk », etc.
J'utilise 2 db ici - par défaut et prod_db
Voici comment i chemin routeur mis ,
1. Dans l'application de la paie i créé le fichier « dbrouter.py »
2. Dans dbrouter.py, i Définition d'une classe DbRouter (voir ce routeur pour le code - https://docs.djangoproject.com/en/2.1/topics/db/multi-db/ )
3. Dans settings.py, le chemin est défini
DATABASE_ROUTERS = [ 'payroll.dbrouter.DbRouter',]