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?
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 :)
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With