2011-05-30 13 views
17

Me pregunto cuál es la "mejor" forma de usar South con múltiples desarrolladores.¿deberían agregarse los archivos de migración sur al control de origen?

¿Deberían rastrearse los archivos de migración? Los problemas aumentan cuando dos desarrolladores crean diferentes cambios a models.py desde un mismo origen.

Si se realiza un seguimiento de los archivos de migración:

  1. Es difícil darse cuenta de que se necesita una fusión, ya que se forman con diferentes nombres de archivo.
  2. y es difícil fusionar de todos modos.
  3. difícil de aplicar (necesidad de migrar hacia atrás una migración, fusionar, migran hacia adelante de nuevo)

Si no se realiza un seguimiento:

  1. migraciones que pellizcan no se pueden compartir.
  2. un desarrollador necesita create migrar (y aplicarlo) cada vez que realiza un cambio al archivo de modelos (en lugar de solo aplicarlo).

¿Hay más ventajas/desventajas que me perdí? ¿Cuál es la "mejor" manera? Actualmente estoy usando migraciones de seguimiento, pero pensando en cambiar a no rastreado, parece que es mucho más simple.

gracias.

+0

¿No deberían los desarrolladores comprometer migraciones que no van a romper los modelos? como para asegurarse de actualizar al último primero? –

+0

Sí, antes de comprometerse debe tirar y * fusionar * y asegurarse de que no está roto antes de impulsar sus cambios. Cuando dos desarrolladores trabajan en paralelo y chocan con diferentes cambios en models.py, esta combinación es exactamente la parte problemática que trato de evitar: la fusión de código es fácil, la fusión de migración es difícil. – Iftah

Respuesta

20

Definitivamente deben agregarse al control de fuente. Tendrá que coordinar manualmente (verbalmente?) Los cambios de sus modelos para evitar enfrentamientos. Si no incluye las migraciones en su control de origen, entonces otros desarrolladores no podrán migrar su base de datos (lo que frustra el punto de tener realmente migraciones).

+2

siempre y cuando solo permita migraciones creadas por el usuario (es decir, sin retoques), otros desarrolladores pueden crear las migraciones necesarias localmente. Al final, después de fusionar el archivo models.py, ambos desarrolladores tendrán el mismo esquema de base de datos, solo un conjunto diferente y un orden diferente de migraciones. Siempre que solo se utilicen las migraciones automáticas, no veo ningún problema. – Iftah

+11

Debería tener RTFM más profundamente, el tutorial habla de colaboración en el capítulo 5 [http://south.aeracode.org/docs/tutorial/part5.html#team-workflow]. En mi defensa, hay un error en la documentación y al leer el capítulo 4, el "próximo capítulo" se salta el capítulo 5. El tutorial recomienda claramente seguir los archivos de migración, por lo que estoy aceptando esta respuesta, pero recomiendo a los lectores futuros que verifiquen lo que dice el tutorial sobre esto. – Iftah

Cuestiones relacionadas