Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django's Core Migrate Tool vs South for Django Data Migrations

I'm not currently using migrations in my Django project but I intend to very soon. I understand that South is the de facto tool, and I was going to use that but then I read on the Django project site that the development version (I guess to be released as 1.7) has a core migration tool, ran as migrate.

Coming from very little experience using migration tools (I installed Django-CMS with South and played around with it for a day or so), which is the best one for a beginner?

Also, since migration itself is pretty young, and Django's version even more so, would I be better off going with South this point?

Finally, another question is if I start with South (most of my Django projects are v1.5), when I upgrade to 1.6 and then 1.7, will I have trouble converting to Django's core migration?

like image 511
nicorellius Avatar asked Dec 23 '13 21:12

nicorellius


2 Answers

Since the Andrew Godwin (creator or Django Core migration) words about this change are: "South's four-year-old design hitting serious limits, it's time to add migration support into Django itself", i won't bet on the ability to export South migration history to Django core migrations.

That's why, if you can, I would suggest you to wait for 20th January: the Django 1.7 alpha version with Core Migration will be released as you can see here.

Eventually, Andrew Godwin worked on South himself, so you should not see Django Core Migration as a whole new tool, but rather as South v2.

Then, you can be pretty sure that South won't be really maintained as soon as Core migration is released.

That's why I suggest waiting for a few time and giving a chance to this new tool :)

like image 155
David D. Avatar answered Sep 28 '22 14:09

David D.


Its easy to drop South migration history and initialize any other kind of migration tool.

Django core migrations are based on South, so I guess it will be possible to export South migration history to Django core migrations.

Since Django core migrations are not released yet, and your purpose is to learn, I suggest starting with South.

like image 23
niekas Avatar answered Sep 28 '22 16:09

niekas