2009-05-12 5 views
6

Django tiene una serie de proyectos de código abierto que abordan uno de los marcos más notables missing features: modelo "evolución". Ruby on Rails tiene soporte nativo para migrations, pero tengo curiosidad si alguien puede recomendar uno de los proyectos siguientes Django "evolución":¿Cómo se pueden migrar modelos de Django similares a las migraciones de Ruby on Rails?

+1

¡¡Gran pregunta !! Espero usar algo así como las migraciones con Django también. – NathanD

+0

También vea esta pregunta: http://stackoverflow.com/questions/426378/what-is-your-favorite-solution-for-managing-database-migrations-in-django aunque la respuesta favorita allí es migratoria, que tiene problemas . –

Respuesta

10

Sur tiene la mayor cantidad de vapor detrás de esto. las migraciones es demasiado básico OMI. django-evolution grita si alguna vez tocas el DB fuera de él.

Sur es el contendiente más fuerte con diferencia. Con el modelo de congelación y migraciones automáticas ha recorrido un largo camino.

+0

Me impresionó South, pero también me pareció interesante la evolución de django. A menos que tenga más respuestas en las próximas dos horas, me iré con esta. – Huuuze

+0

Si está usando una herramienta de evolución, no debe tocar el DB fuera de ella, así que no veo eso como una gran discusión. –

5

South y django-evolution son sin duda las mejores opciones. La congelación de modelos y la autodefinición de South siguen siendo bastante frágiles en mi experiencia (la alusión de django-evolution es mucho más robusta en los casos extremos), pero el desarrollo de django-evolution parece haberse estancado en su mayoría desde el verano pasado. Si estuviera comenzando ahora, probablemente elegiría South, principalmente por esa razón.

1

Soy miembro del equipo que desarrolló las migraciones, pero recomiendo encarecidamente South. Es mucho más maduro, está en desarrollo activo y tiene algunas funciones fatales como la congelación de ORM (si intentas utilizar el código ORM en las migraciones, y luego cambias tus modelos, te espera un mundo de dolor).

2

Después de leer esto, pasé de 'no saber nada sobre la evolución del modelo de datos' a 'usar el sur para gestionar la migración del modelo' en menos de 1 hora. La documentación de South es sobresaliente y me puso al día en un tiempo récord. No habiendo mirado las otras herramientas mencionadas, lo recomiendo totalmente.

Actualización: Desde que publique esta respuesta hace aproximadamente un mes, pasé por varias revisiones de modelos de datos, que van desde el cambio de nombre de campo simple hasta el reemplazo total de algunas tablas por otras nuevas. South no puede hacer todo de manera totalmente automática (por ejemplo, un cambio de nombre parece eliminar & add), pero la documentación lo guía sin problemas por los pasos manuales.

Traeré hacia el sur en cualquier proyecto futuro. Fantástica herramienta!