Migración de Django South a diferentes bases de datos.

¿South respeta los enrutadores de bases de datos? Configuré enrutadores para enrutar ciertas aplicaciones a una base de datos y todas las demás aplicaciones a la base de datos predeterminada. Incluso me aseguré de que la tabla de historial de migración del sur esté en ambos DB. Pero no puedo hacer que South solo aplique migraciones en la base de datos apropiada. Es decir, incluso cuando corro hacia el sur con --database, aplica todas las migraciones a la base de datos que especifico, en lugar de solo las migraciones desde la aplicación que deberían ir a esa base de datos.

¡Ayudar! Gracias.

preguntado el 27 de julio de 12 a las 15:07

Echa un vistazo aquí: south.aeracode.org/ticket/370 -

Por cierto, ¿"manage.py migrate appname --database dbname" no funciona? -

La aplicación de migración manage.py --database db funciona, pero no puede administrar.migrar --database db y hacer que las migraciones correctas vayan a la base de datos correcta. -

El enlace south.aeracode.org/ticket/370 ya no es válido ya que South está obsoleto a favor de las propias migraciones de Django. -

1 Respuestas

"¿Honra South los enrutadores de bases de datos?" No, no lo hace.

El problema es que el enrutador DB de Django enruta las consultas a bases de datos basadas en aplicaciones/modelos, mientras que el sur se basa en tablas. South realmente no tiene mucha idea de a qué modelo corresponde una tabla (especialmente en la historia). andres gowin es actualmente trabajando en un módulo contrib para django eso reemplazará al sur y solucionará muchos de estos problemas, pero en este momento tiene que hacer mucho de este trabajo manualmente usando métodos pirateados (--database, .using()).

Recomiendo por el bien de la automatización, tener todas las tablas existentes en todas las bases de datos y ejecutar todas las migraciones contra todas esas bases de datos también. Solo para asegurarse de que todas las restricciones funcionen de manera consistente en todas las bases de datos.

Respondido 06 ago 13, 01:08

Si esta respuesta te ayuda o te informa, ¿considerarías marcarla como correcta? - Thomas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.