South: migraciones de esquemas y datos de django

Django es fantástico con el mapeo de modelos a base de datos, simplemente hay que correr el comando ‘python manage.py syncdb’ y genera las tablas previamente definidas en ‘models.py’. Este comando sabe a poco cuando modificamos los modelos, ya sea agregando columnas o cambiando tipos de datos, ya que syncdb ignorará todos estos cambios. Para que todo siga andando, una vez modificado el modelo, tenemos que modificar a mano la base de datos. Cosa que ya deja de ser tan atractivo…

La solución a este problema son los sistemas de migraciones de esquemas, aplicaciones de terceros que hacen este trabajo por nosotros.

Hace un tiempo que había comenzado a usar django-evolution, estaba muy contento, pero todo indica que el proyecto será discontinuado, y los caminos conducen a South, único sobreviviente de todos los  que habían surgido para atacar este problema.

Así que es un buen momento para migrar el sistema de migraciones!

Instalar South:

Si estamos usando virtualenv:

‘pip install -E entorno/ South’

Sino,

‘pip install south’ (algunos puritanos lo instalan via apt-get)

agregamos south a nuestras aplicaciones en ‘INSTALLED_APPS’

Comenzar a usarlo

Comenzar a utilizar shoth desde cero:

‘python manage.py schemamigration myapp –initial’ (se crea la migración incial)

‘python manage.py migrate myapp’

Agregar South a nuestra aplicación

Si ya teníamos un proyecto andando y le agregamos south para manejar las migraciones:

‘python manage.py convert_to_south myapp’

Migrar modelos

Una vez que modificamos los modelos en ‘models.py’, para que se refleje en nuestra base de datos,

‘python manage.py schemamigration myapp –auto’ (crea una nueva migración)

‘python manage.py migrate myapp’ (aplica esta nueva migración creada)

Así de simple, para cosas más complicadas, vamos a la documentación oficial

Referencias:

http://south.aeracode.org/

http://mitchfournier.com/2010/06/23/getting-started-with-south-django-database-migrations/

http://lucasbonomo.com.ar/2011/06/20/jugando-con-south/

Buscar temas relacionados

Búsqueda personalizada

1 Comment

Mariano GalanAugust 7th, 2011 at 10:55 pm

Esta muy bueno South, lo vengo usando desde hace un par de meses. Con lo unico que puteo un poco es cuando estoy por hacer git push y me doy cuenta que alguien mas agrego una migracion :(

Leave a comment

Your comment