It's that time of the year again, when a new South release rears its well-refactored, database-independent head.
If you've been following the development of South at all, you'll know that 0.7 has been quite a while in the making. I've been busy working away at a big code refactor, along with Simon Law, who has gained the title of "Knowing Too Much About Migrations".
However, there are some user-facing changes as well, some quite significant. While my release notes go into some detail on what's new, the major changes include:
**New command names.**The old startmigration was getting a little overloaded and wasn't too well-named, so it's been split into schemamigration and datamigration commands.
No more issues with missing defaults. South realises you need a default for NOT NULL columns now, and prompts you if you forget to specify one as you're making the migration, instead of dying when you try to apply it.
Django 1.2 and MultiDB support. As well as supporting the latest and greatest incarnation of the universe's best web framework, 0.7 also has some limited MultiDB support, in the form of a --database option (that works like the option of the same name on the new syncdb command in Django).
Custom fields are no longer magically used. Instead, you now have to actually tell South about them. We're working on docs to make this a bit easier - it's an ease-of-use regression, which I'm not too keen on - but it's needed to stop things mysteriously failing in your migrations a few weeks down the line.
As I said above, read the new long-form release notes for much more on the release.
If the release candidate proves to have sufficiently few bugs that I can fix them in time, 0.7 will be released next Thursday, the 25th March. So, please, install the release candidate and try it out!