django, múltiples bases de datos, problema de configuración: “Error importadores enrutador base de datos”
-
01-10-2019 - |
Pregunta
He seguido estas instrucciones al conjunto Django con múltiples bases de datos. Que está funcionando como se pretendía en mi entorno de desarrollo local (Windows 7), sin embargo, cuando subo el proyecto a mi servidor vivo (webfaction), consigo
ImproperlyConfigured: Error al importar la base de datos del router MyCustomRouter: "No hay ningún módulo llamado path.to.my.router"
Desde el shell Django, puedo importar MyCustomRouter:
>>> from path.to.my.router import MyCustomRouter
>>>
Estoy corriendo Django 1.2.1 y python2.6 tanto a nivel local y en el servidor en vivo ...
¿Alguna pista de lo que podría ser la causa de este comportamiento o la forma de depuración están muy apreciada!
Saludos,
Martin
Solución
Yo tenía el mismo problema. Había definido un router en models.py. Traslado de la definición de clase en su propio archivo (nombré router.py mío), y settings.py actualización en consecuencia, resuelve el error.
Otros consejos
path.to.myrouter
es sólo un marcador de posición.
Sólo tiene que añadir lo siguiente a su archivo setting.py
DATABASE_ROUTERS = ['myapp.routers.MyApp2Router',]
cambiar el nombre de su archivo de enrutador routers.py
Ejemplo:
Mis proyectos consiste en múltiples aplicaciones como 'nómina', 'impuestos', 'asistencia', etc.
estoy usando 2 db aquí - por defecto y prod_db
Éste es cómo establecer la ruta de enrutador , España
1. En aplicación de nómina creé "dbrouter.py" archivo
2. En dbrouter.py, defino clase DbRouter (consulte este para el código enrutador - https://docs.djangoproject.com/en/2.1/topics/db/multi-db/ )
3. En settings.py, ruta se establece
DATABASE_ROUTERS = [ 'payroll.dbrouter.DbRouter',]