2011-12-02 15 views
11

Hace poco comenzó a excavar en la documentación South y descubrió que tenía dos tipos distintos de migraciones:¿Qué hace una migración de datos del Sur en comparación con una migración de esquema?

  • schemamigration
  • datamigration

Como resultado de mi ignorancia, yo siempre he usado schemamigrations para todo. En otras palabras, incluso si tuviera algo que realmente fuera una "migración de datos", simplemente había usado la migración de esquemas de South para convertir los datos (sin consecuencias aparentes).

Cuando leo la documentación, no veo un error en este enfoque. ¿Alguien sabe la diferencia fundamental entre las dos migraciones y lo que me puede estar perdiendo al seguir con schemamigrations?

Respuesta

5

por el desarrollador principal del Sur:

Se puede ver la diferencia aquí: https://bitbucket.org/andrewgodwin/south/src/b3ed126b19a2/south/v2.py

Como muestra de que, la única diferencia es que las migraciones de datos no son funcionamiento en seco si tiene una base de datos que lo requiere (MySQL). De lo contrario, hay poca diferencia, al menos por el momento; sin embargo, los comandos de administración difieren (se trata de la separación de la interfaz de usuario, esencialmente ).

6

En realidad, solo hay un tipo de migración, pero dos comandos. datamigration crea una nueva migración en blanco para que la llene, mientras que schemamigration es un comando de conveniencia opcional que intentará detectar cambios de esquema y crear una migración automáticamente.

Editar: desde http://south.aeracode.org/docs/commands.html#schemamigration

Mientras que emigran es la verdadera carne y huesos del Sur, schemamigration es por comparación enteramente un extra opcional. Es una utilidad para ayudar a escribir algunas de sus migraciones (específicamente, las que cambian el esquema) para usted; si lo desea, puede ignorarlo y escribir todo usted mismo, en cuyo caso le deseamos buena suerte y mecanografía feliz.

Cuestiones relacionadas